{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notes:\n",
    " * revised and tuned configuration, updated views\n",
    " * training on full dataset (including Y3, new light curves, fixes)\n",
    " * trained with updated star radius estimations, multiple duplicates removed"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/1/AstroCNNModel_revised_tuned_20220210_020018',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/2/AstroCNNModel_revised_tuned_20220210_020618',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/3/AstroCNNModel_revised_tuned_20220210_021215',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/4/AstroCNNModel_revised_tuned_20220210_021815',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/5/AstroCNNModel_revised_tuned_20220210_022416',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/6/AstroCNNModel_revised_tuned_20220210_023018',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/7/AstroCNNModel_revised_tuned_20220210_023626',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/8/AstroCNNModel_revised_tuned_20220210_024232',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/9/AstroCNNModel_revised_tuned_20220210_024838',\n",
       " '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1/10/AstroCNNModel_revised_tuned_20220210_025441']"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "\n",
    "chkpt_root = '/mnt/tess/astronet/checkpoints/revised_tuned_34_run_1'\n",
    "data_files = '/mnt/tess/astronet/tfrecords-34-val/*'\n",
    "tces_file = '/mnt/tess/astronet/tces-v11-val.csv'\n",
    "\n",
    "nruns = 10\n",
    "\n",
    "def load_ensemble(chkpt_root, nruns):\n",
    "    checkpts = []\n",
    "    for i in range(nruns):\n",
    "        parent = os.path.join(chkpt_root, str(i + 1))\n",
    "        if not os.path.exists(parent):\n",
    "            break\n",
    "        all_dirs = os.listdir(parent)\n",
    "        if not all_dirs:\n",
    "            break\n",
    "        d, = all_dirs\n",
    "        checkpts.append(os.path.join(parent, d))\n",
    "    return checkpts\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "paths"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running model 1\n",
      "2484 records\n",
      "Running model 2\n",
      "2484 records\n",
      "Running model 3\n",
      "2484 records\n",
      "Running model 4\n",
      "2484 records\n",
      "Running model 5\n",
      "2484 records\n",
      "Running model 6\n",
      "2484 records\n",
      "Running model 7\n",
      "2484 records\n",
      "Running model 8\n",
      "2484 records\n",
      "Running model 9\n",
      "2484 records\n",
      "Running model 10\n",
      "2484 records\n"
     ]
    }
   ],
   "source": [
    "import getpass\n",
    "import os\n",
    "from astronet import predict\n",
    "import tensorflow as tf\n",
    "\n",
    "\n",
    "def run_predictions(path):\n",
    "    predict.FLAGS = predict.parser.parse_args([\n",
    "      '--model_dir', path,\n",
    "      '--data_files', data_files,\n",
    "      '--output_file', '',\n",
    "    ])\n",
    "\n",
    "    return predict.predict()\n",
    "\n",
    "\n",
    "paths = load_ensemble(chkpt_root, nruns)\n",
    "ensemble_preds = []\n",
    "config = None\n",
    "for i, path in enumerate(paths):\n",
    "    print(f'Running model {i + 1}')\n",
    "    preds, config = run_predictions(path)\n",
    "    ensemble_preds.append(preds.set_index('tic_id'))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels = ['disp_e', 'disp_n', 'disp_j', 'disp_s', 'disp_b']\n",
    "\n",
    "col_e = labels.index('disp_e')\n",
    "thresh = 0.999"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "agg_preds = {}\n",
    "\n",
    "for preds in ensemble_preds:\n",
    "    for tic_id in preds.index:\n",
    "        if tic_id not in agg_preds:\n",
    "            agg_preds[tic_id] = []\n",
    "\n",
    "        row = preds[preds.index == tic_id]\n",
    "        pred_v = row.values[0]\n",
    "        if len(row.values) > 1:\n",
    "            print(f'Warning: duplicate predictions for {tic_id}')\n",
    "        if pred_v[col_e] >= thresh:\n",
    "            agg_preds[tic_id].append('disp_e')\n",
    "        else:\n",
    "            masked_v = [v if i != col_e else 0 for i, v in enumerate(pred_v)]\n",
    "            agg_preds[tic_id].append(preds.columns[np.argmax(masked_v)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "final_preds = []\n",
    "for tic_id in list(agg_preds.keys()):\n",
    "    counts = {l: 0 for l in labels}\n",
    "    for e in agg_preds[tic_id]:\n",
    "        counts[e] += 1\n",
    "    maxcount = max(counts.values())\n",
    "    counts.update({\n",
    "        'tic_id': tic_id,\n",
    "        'maxcount': maxcount,\n",
    "    })\n",
    "    final_preds.append(counts)\n",
    "    \n",
    "final_preds = pd.DataFrame(final_preds).set_index('tic_id')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "tce_table = pd.read_csv(tces_file, header=0).set_index('tic_id')\n",
    "for l in labels:\n",
    "    tce_table[l] = tce_table[l[:-1] + l[-1].upper()]\n",
    "tce_labels = tce_table[labels]\n",
    "\n",
    "pl = final_preds.join(tce_labels, on='tic_id', how='left', lsuffix='_p')\n",
    "\n",
    "pl.head()\n",
    "pd.set_option('display.max_columns', None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Recall: 0.24615384615384617\n",
      "Precision: 0.9411764705882353\n"
     ]
    }
   ],
   "source": [
    "ppos = (pl['disp_e_p'] > 0)\n",
    "pos = (pl['disp_e'] > 0)\n",
    "\n",
    "pneg = (pl['disp_e_p'] == 0)\n",
    "neg = (pl['disp_e'] == 0)\n",
    "\n",
    "print('Recall:', len(pl[ppos & pos]) / len(pl[pos]))\n",
    "print('Precision:', len(pl[ppos & pos]) / len(pl[ppos]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "26656591\n",
      "273745020\n",
      "40087443\n",
      "416636585\n",
      "120053429\n",
      "136704900\n",
      "162035117\n",
      "278533000\n",
      "290069794\n",
      "358325879\n",
      "395911548\n",
      "417436377\n",
      "435864514\n",
      "245502040\n",
      "245697030\n",
      "252140529\n",
      "292195405\n",
      "292607284\n",
      "322341030\n",
      "322387733\n",
      "331789650\n",
      "410618086\n",
      "46630964\n",
      "94475217\n",
      "94475420\n",
      "104485403\n",
      "115559361\n",
      "252209039\n",
      "286703464\n",
      "334227600\n",
      "369264198\n",
      "426389001\n",
      "440380838\n",
      "440393728\n",
      "470519312\n",
      "664241080\n",
      "84342714\n",
      "9830266\n",
      "147563141\n",
      "172933154\n",
      "284450803\n",
      "28484801\n",
      "286380389\n",
      "288132261\n",
      "289321133\n",
      "298605890\n",
      "20178111\n",
      "32486353\n",
      "33590130\n",
      "35517684\n",
      "115443990\n",
      "119924058\n",
      "144003690\n",
      "156502833\n",
      "158499558\n",
      "170312353\n",
      "183532608\n",
      "257485503\n",
      "261724524\n",
      "317087106\n",
      "332911893\n",
      "380252328\n",
      "389089378\n",
      "418100760\n",
      "67949277\n",
      "137025771\n",
      "144383508\n",
      "202426247\n",
      "357345626\n",
      "390652227\n",
      "71613490\n",
      "161687311\n",
      "207468071\n",
      "101767697\n",
      "120258315\n",
      "135443051\n",
      "1400770435\n",
      "160618494\n",
      "1715064237\n",
      "188768068\n",
      "188771372\n",
      "198356533\n",
      "199661915\n",
      "219459417\n",
      "235735125\n",
      "108667731\n",
      "118412801\n",
      "118724713\n",
      "119344901\n",
      "141155743\n",
      "141753278\n",
      "158159741\n",
      "161037803\n",
      "166422035\n",
      "167364796\n",
      "167750686\n",
      "169446744\n",
      "177077336\n",
      "177254093\n",
      "179637565\n",
      "183077506\n",
      "200133198\n",
      "21699878\n",
      "231093382\n",
      "238197709\n",
      "238871680\n",
      "246288545\n",
      "254258206\n",
      "255914623\n",
      "255984294\n",
      "257609307\n",
      "260504147\n",
      "261396645\n",
      "270341486\n",
      "276978548\n",
      "277034534\n",
      "277816929\n",
      "278199150\n",
      "279154792\n",
      "279958093\n",
      "281924349\n",
      "290458014\n",
      "292121908\n",
      "294199488\n",
      "30031195\n",
      "303841101\n",
      "304733047\n",
      "306576958\n",
      "30920361\n",
      "310733484\n",
      "311892170\n",
      "318612975\n",
      "323968566\n",
      "324321642\n",
      "324928104\n",
      "325071697\n",
      "326598766\n",
      "330525888\n",
      "339831405\n",
      "339888314\n",
      "340104253\n",
      "348762276\n",
      "349411363\n",
      "349412074\n",
      "349435064\n",
      "349676749\n",
      "370133522\n",
      "373843834\n",
      "373844472\n",
      "375302184\n",
      "380649694\n",
      "383716496\n",
      "387223056\n",
      "394680324\n",
      "401670607\n",
      "404220255\n",
      "404663968\n",
      "404734079\n",
      "405953160\n",
      "406172860\n",
      "406976746\n",
      "407146536\n",
      "407147727\n",
      "407823917\n",
      "419739825\n",
      "421437317\n",
      "425086260\n",
      "469672435\n",
      "49452011\n",
      "61961021\n",
      "6286038\n",
      "62878917\n",
      "67982366\n",
      "75923359\n",
      "80012276\n",
      "80061981\n",
      "80064289\n",
      "90245878\n",
      "137310513\n",
      "213487752\n",
      "354575514\n",
      "377325711\n",
      "385057922\n",
      "393324927\n",
      "406714435\n",
      "42705187\n",
      "89522181\n",
      "10859298\n",
      "12578897\n",
      "126336928\n",
      "14313564\n",
      "15129024\n",
      "161719317\n",
      "185612923\n",
      "193137860\n",
      "193395724\n"
     ]
    }
   ],
   "source": [
    "for i in pl[pos & pneg][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "30722286\n",
      "340066802\n",
      "375927073\n",
      "68973923\n"
     ]
    }
   ],
   "source": [
    "for i in pl[neg & ppos][[]].join(tce_table, on='tic_id', how='left').index:\n",
    "    print(i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_e</th>\n",
       "      <th>disp_n</th>\n",
       "      <th>disp_j</th>\n",
       "      <th>disp_s</th>\n",
       "      <th>disp_b</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_e  disp_n  disp_j  disp_s  disp_b\n",
       "tic_id                                           \n",
       "340066802     1.0     0.0     1.0     0.0     0.0\n",
       "340066802     1.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     1.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0\n",
       "340066802     0.0     0.0     1.0     0.0     0.0"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def compare(ensemble_preds, filter):\n",
    "    result = ensemble_preds[0][filter]\n",
    "    for preds in ensemble_preds[1:]:\n",
    "        result = result.append(preds[filter])\n",
    "    return result\n",
    "\n",
    "compare(ensemble_preds, preds.index == 340066802)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>disp_e_p</th>\n",
       "      <th>disp_n_p</th>\n",
       "      <th>disp_j_p</th>\n",
       "      <th>disp_s_p</th>\n",
       "      <th>disp_b_p</th>\n",
       "      <th>maxcount</th>\n",
       "      <th>disp_e</th>\n",
       "      <th>disp_n</th>\n",
       "      <th>disp_j</th>\n",
       "      <th>disp_s</th>\n",
       "      <th>disp_b</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>tic_id</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>340066802</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           disp_e_p  disp_n_p  disp_j_p  disp_s_p  disp_b_p  maxcount  disp_e  \\\n",
       "tic_id                                                                          \n",
       "340066802         3         0         7         0         0         7       0   \n",
       "\n",
       "           disp_n  disp_j  disp_s  disp_b  \n",
       "tic_id                                     \n",
       "340066802       0       1       0       0  "
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pl[pl.index == 340066802]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PR curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [],
   "source": [
    "tics = set(ensemble_preds[0].index.values)\n",
    "\n",
    "tic_index = {v: i for i, v in enumerate(tics)}\n",
    "\n",
    "pred_es = np.zeros([len(ensemble_preds), len(tic_index)])\n",
    "for i, preds in enumerate(ensemble_preds):\n",
    "    for row in preds.iterrows():\n",
    "        tic, pred_e = row[0], row[1][col_e]\n",
    "        pred_es[i][tic_index[tic]] = pred_e\n",
    "\n",
    "lbl_es = np.zeros([len(tic_index)], dtype=np.bool)\n",
    "for row in tce_labels.iterrows():\n",
    "    tic, lbl_e = row[0], row[1]['disp_e']\n",
    "    if tic in tic_index:\n",
    "        lbl_es[tic_index[tic]] = (lbl_e > 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "num_cond_pos = int(np.sum(lbl_es))\n",
    "\n",
    "def pr_at_th(th):\n",
    "    pred_pos = np.any(pred_es >= th, axis=0)\n",
    "    true_pos = pred_pos & lbl_es\n",
    "    num_pred_pos = int(np.sum(pred_pos))\n",
    "    num_true_pos = int(np.sum(true_pos))\n",
    "    if num_pred_pos == 0:\n",
    "        return 1.0, 0.0\n",
    "    return float(num_true_pos) / float(num_pred_pos), float(num_true_pos) / float(num_cond_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC: 0.8978676168615732, max R: 1.0, max P: 0.9788359788359788\n",
      "100% recall at: 34%, threshold: 0.013500000000054635\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABD0AAAKuCAYAAACi1mevAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAewgAAHsIBbtB1PgAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3xb933v//cXm+AStRc1KFke8pSnbI0MJ42TplnNahNneaS9vcmv7h63jtPe3rS/tmnapjd2nJ1mtEmz2ySOk1iy43jJQ7Ys2xI1qL1JgiD29/4BgARAgkMicIBzXs/Hgw8c4HxxzocHHx2RH36HsdYKAAAAAADAbXxOBwAAAAAAAFALFD0AAAAAAIArUfQAAAAAAACuRNEDAAAAAAC4EkUPAAAAAADgShQ9AAAAAACAK1H0AAAAAAAArkTRAwAAAAAAuBJFDwAAAAAA4EoUPQAAAAAAgCtR9AAAAAAAAK5E0QMAAAAAALgSRQ8AAAAAAOBKFD0AAAAAAIArUfQAAAAAAACuRNEDAAAAAAC4EkUPAAAAAADgShQ9AAAAAACAK1H0AAAAAAAArkTRAwAAAAAAuJJnix7GmPnGmF81xnzUGPPfxpgTxhhb+Pp8jc75TmPMj40xR4wxCWPMPmPMl40x62txPgAAAAAAvMxYa52OwRHGmIm+8S9Ya987g+dqkfQNSa+t0iQn6aPW2rtm6pwAAAAAAHidZ3t6VNgv6cc1PP5nNVrw+JmkN0q6RtIHJO1W/nP4iDHmthrGAAAAAACAp3i5p8ddkh6T9Ji19qgxZoWkPYXdM9bTwxjzCkn3F55+T9KbrLXZkv1zJT0haZmkM5J6rLWnZ+LcAAAAAAB4mWd7elhr77TWft9ae7TGp/r9wmNG0m+XFjwKcZyQ9EeFp7Mk3VLjeAAAAAAA8ATPFj3qwRjTLumVhac/sdYeqNL0PyUNFLbfVPPAAAAAAADwAIoetXW1pFBh+4Fqjay1KUm/LL7HGBOsdWAAAAAAALhdwOkAXO6iku2dk7TdKenVyn8m50naMdnB77rrrrCkSyTNl3RSUnbid+jIZMcEAAAAAGACfknzCtvb77zzzqSTwUyGokdtLS3Zrja0paivZLtbUyh6KF/weGy6QQEAAAAAMAOulvS400FMhOEttdVesh2bpO1QyXZbDWIBAAAAAMBT6OlRW5GS7dQkbUu7BLVM8fjHixtveMMbFI1GR3YEAgGFw2HlcjkNDw9LktraRmspxe3h4WFls+WjYsLhsILBoFKplFKp8rD9fr9aWlpkrdXQ0JAqRaNR+Xw+JRIJZTKZsn2hUEihUEjpdFrJZHkPKJ/PNxJ/LDa2PtTS0iK/3z/ucYPBoMLhsDKZjBKJRNk+Y4xaW1slSUNDQ6pcojkSiSgQCCiZTCqdTpftCwQCikQiymazI9ewVPEaxuNx5XK5sn0TXcPicXO5nOLx+Jjjtra2yhgz7mcz0TUsfjbS+Ndwos9momtY+tmMdw2Ln810r2HpZzPeNSx+NjN9DYufzUTX8Fzy+1yu4USfzblcw4k+m2rXkHtEHveIPO4RedwjRnGPyOMekcc9Io97xCjuEXluvUccOXJEX/3qV4u7jqvBmcoPxquMMSsk7Sk8/YK19r0zcMxPSvrtwtMLrbVV5/UwxvyWpH8tPP11a+03Jzv+XXfdtVSFYTEf/OAHtWDBgnOMGGhM8Xhcu3bt0urVq8uKe4CbkOfwAvIcXkCew+0GBgb08Y9/vPi0+84775xsKgdHMbyltgZLticbstJasj3ZUJgxKqt0gJtks1mdPn2aPIerkefwAvIcXkCeA42FokdtlVa8llZtldddst1XtRUAAAAAAJgSih61VboCywWTtC3uz0h6qTbhAAAAAADgHRQ9ausxjU5gurlaI2NMSNJ1xfdYa9PV2gIAAAAAgKmh6FFD1tpBSfcXnt5ojKk2xOXNkjoK2986m3OFQqGzeRvQFMLhsFavXq1wOOx0KEDNkOfwAvIcXkCeA42Fosc5MMa81xhjC18fqdLs7wqPAUmfNMb4K44xV9LfFJ6ekXTv2cRC0QNuFgqFtGTJEvIcrkaewwvIc3gBeQ40loDTATjFGLNB0uqSl+aWbK82xry3tL219vNncx5r7U+NMV+T9A5JvybpPmPMP0o6JOkSSX8maVmh+R9Za0+fzXkq130G3CSdTuvUqVOaPXu2gsGg0+EANUGewwvIc3gBeQ40Fs8WPSTdIuk9VfbdUPgq9flzONf7lR++8lpJLy98lcpJ+ktr7T1ne4JkMnn20QENLpFIaOfOnVq3bh0/PMC1yHN4gVfz3FqrbM4qk7NKZ3PK5qzSWatMLqdMNv9aJmeVKbyWzlplCq9N2D5XaJe1Shf2ZUr2pQv7iu+rfC2dtYVjj75ncWdEv/uqNVqzoN3py9a0vJrnQKPyctGjbqy1w5JeZ4z5DUnvlXSZpFmSjkraKulfrLUPOxchAABAc8jl8r/gp7NW6UxO6WxOqexoMSCVHS0aFLeL7dK5ku1sTqlCu+J2OptTOpMvAKQK22PfZwvnKxy75PyZQttMdrTIUCwuNIun+6Sfv3BcH3vLJXrD5UucDgcAzplnix7W2vcqX4A4l2N8XtPoAWKt/Yqkr5zLOQEAAGrF2vwv6qlMLv+VzT8mM1kli6+VvF7crtw3WoywIwWGdNYqnkjq2PGE2vbskDX+QkEgp3SmUGQYU7zIP0+VHCOba54CQrMaTmf14a89pSf3n9Ef33SBJI1+NiM9Ska3iz1F0iWf2WiPlfLeK8XPsdr+YsFptAeLHSkwlfZ0GT1nea+YseezMkbasHqu/uHtl6uzhZ4XgNd4tugBAADgNGvtSM+BYtEgmckWHiuKCxXPk9ny9hO1Ga+IMW7RIpuTrUdN4fCJOpwE5+rzv9irz/9ir9NhzIj7dx7Tp7f06vd/5XynQwFQZxQ9XMLv90/eCGhSfr9f7e3t5DlcjTx3nrVWyUxOiXR25DGRLj6WvFZsM167TH579PWskumcEpnRx9L2yUzO6W8bDcRnpIDfp6DP5B/9RgGfT36fyW/7fQr4jIJ+nwJ+o4Avvz/gL7xWss/vMwpW7AuMPJa/VjzPk/tP6z+eOOD0ZaiZf/nZLi3ojBSGMI0OTyrtUTTak6TYgyWnVCa/HfT79JqLF+rXr1w64Xm4nwONhaKHS7S0tDgdAlAz0WhU69atczoMoKbI83LW2kLxYJyCQknhoVhUGLdd6WuF59UKDxQg3KNYIAj6fQr5R3/pD/l9IwWBkeeB4i//PoUK26Nfo89DxSJB4fVQwDdSNAgF8u8P+isKDmMKFPk2pftKCw4Bn5HPZxy9dr9x7TJdvXK2/vzbzyrl0n8P/+vbz57T+3/y/FF1RYN65YULqrbhfg40FooeAABg2opFiXgqo+F0VsOprOKp7DjbmSqvZ8e8N57KFyOKbdBYfEYKBfLFglDAr3DAp1DAN/KYf903UhAIlRYOCvsDPqNgYGwhIVRSYAgG8j0dRrZL9/lNWfEiVPoef75ng9OFg2b3tqu6ddGiDv3OV7Zp78n4lN4zUrip6HEyXu+UYu+TYo+W0kJUZSEo//7Rz39MochvStqOnq/YU+ZTD+zWT3cem/Fr9MvekxMWPQA0FooeLhGLxdTR0eF0GEBNDA4Oatu2bVq3bp3a21lCD+5UyzzPZHMaSmYVS2UUT2YUS2Y0lMxqKJXRULLwlcpqqLAvXmg7UpgoFCHiqfLCBWqr2IugsqAQ8pcUGkr2hQP+8duUvresffG5X+Hg5OcI+H3n/D1xP28OFy/p1H13bNb+U3FZqzHFhGLBKeDL91wxpjELTclMtiZFj09v3aPrV83V9avnKBwYO4SFPAcaC0UPAAAaTDKTzRcekplCYSI7bnFiKJnvRRGr2DdU8r5YMuPabur1Eg74FAn6Rx4jwcJjIF8sCAdKXgv6Rl6PBPwjr4XL3u9XpHjMimJDuNCDIujPz+MAOCXo92nVvDanwzgnG8+bp4++Ya2+/eRBJTO5smFLxR5GAV9576LRniWjPUw+cf9LY479vs8/pvZIQDdeuEA3XbxQm9bMUyQ4/hwe2coVkQoTCqdHJhYuf54qeZzfHtb6VeMXVwBMDUUPAABmUCqT00Airf7htAaGC4+JTMl2/vWB4YwGEumRgsXgcFoDw0klf7RVGZbkrKpa4WHksVBUyLerKDwERgsQZYWH0mJEsPy1kJ/hEkAzu3n9Ct28fsU5HWNOW0h/8Z3nxrw+mMjoW08e1LeePKjWkF/z2sNKZ60S6YyGk2nl7ntQ6dy5L7P8ygvm6zPvvfqcjjHTrLVjlq4uFm7GW966qzWkS5d0zkiPMWC6KHoAAFAil7OKpTLqj6dLihf5okWxYFEsZJQXNvLtzn3YR/MWPEIBn6Ihv1qCfrWE/CXbAUWD+eeRkH+c7cDY1wvvLe9R4WvYbvQA3OvN65bqsb2n9b2nD1VtM5TKamjMHCgz08vu/p3HtOfEkGa3hsbtEZIcp/BQfdnqbH6Z7DHvyxbeayvely0rbhT3p7LT/95edv48fe69V3MfR91R9AAAuE4inR0pUhSLFsXCRLGYUfZayb7BZEa2eesOUxIJ+tQWDigaCqg1HFBbOF94aAsH1FqyXSxcREP5wkVLsLjtryhuBBQJzMycDwDQaNrCAf3zO6/QH73mfP3w2SP64bNH9Pi+03WN4eV/9/O6nq8Wfv7Ccb14NKbzFzLPCeqLoodLRKNRp0MAaqa1tVXXXHONwuGw06GgTnI5W97LYsxwkWr78s/dNodFa8ivaHhsUaI1HFBryJ9/LNnOFzT8o23Co22iQT/FCTiG+zma2dKuqG7Z2KNbNvboSH9CP3ruiP5r+2E9tveUznYES3FForKVjwI+9R4fmtngG8TJoaQkih6oL4oeLuHz8QMs3Mvn86mlpcXpMDADrLXqH07r6EBSRwcSOjqQ0LHBpI4NJPKvDSZ0bCCpY4MJpbPN390iEvSpIxJUZ0tQHS2Fx0igZDuotkhFgSKUL1K0hQOKFooUzCkBt+B+DrdY2BnRe65fofdcv0LHB5N6qu+MsjmrUMAo5PeXFDFMfiWkwmtBf/mqTNWGelz31/fryECizt/VzPD7Rgs5/cNpp8MBKHq4RSKRYMlauNbw8LD27t2rFStW8MNyg7LWaiCR0bFCEeNosYgxkNCxwfx28bGZemH4fWakSDFavAiMFCw6CsWMjkigorCRbzed2fZH8nwReQ734n4ON5rXHtarLlow8nwm8vwPfuV8/eE3n5l0EtTKniKjy1L7FfKPt+y1v7Bd8b6SQk3+uRn7ur/yWGOXwa5ceerKv7xPJ4dSI88/9NWnFPQbXbKkU3/95ks0t41eX6g9ih4ukclknA4BqJlMJqNjx45p6dKlTofiSbFkZrRXxsBoQeNYoVfG0cH8vkS6MYsZrSH/mGJEeRFjnB4YhcfWkL9uE66R5/AC8hxeMBN5/pYrl+rVaxdo/6l4RXHCN6WeIo3qRCwpSTrcn1A05Nc/vuMKhyOCF1D0AACPiqcyJb0xikNMEmNeG0qd62ok5ybgM+osFCHaSwoUnSO9LMbvgdHZElR7JKAg81cAAJpQeySotYs7nQ7jnHS2BMt6epT69lOHtP9UXC0hv95x9TK9/rLFdY4OXkHRAwBcJpHOlvXAODowWtAoDj05NpDUYNLZHmJzWkOa3xHRgo6w5reHtaAjkn9e2J7XHlZXNKRIsPn+kgUAAKSb1y/XR763o+r+bfvPSJIe2nVSq+e36cJFDNfHzKPoAQBNIpnJjkzyOVLIKCliFIegDCScLWbMiga1oD2i+R354sWCwuP89nChyBHRvLawQgF6YAAA4GbvvWGlrl45Wy8djenBXSf0jScOVG170ye2avOaeUqks0pkckqms0pmcvnn6awS6ZwWdkb0p6+9sGwOFWAyFD1cIhgMOh0CUDOhUEjLly9XKBRyOpSaSGVyOh4bXcHk2GD5MJPjhcLG6bizM6B3RAKF3hjhQlFjtKCR762R750RCU598k6McnueAxJ5Dm8gz8utXdyptYs79coL5+vh3Sd18Mxw1bYPvHh8wmPtOTGk/+9rT+rJv3g1fzzBlFH0cAnWu4ebhcNhrVixwukwpi2TzelELDXSA+PoYFLHS5ZmLfbWqDbWtV7awoGRQkaxiDGvvVjMGC1otIQoZtRSs+Y5MB3kObyAPB9feySob/2P6/Xj544qlszoY/+986yOM5TK6nD/sJbPaZ3hCOFWFD1cgtVb4GaZTEYDAwPq6OhQINC4t60n95/Wvz2yX88fHtCxwaROxJKyE680V1MtQX++YFEsXozMm1E+3KQt3LjX1EuaJc+Bc0GewwvI8+rmt0f0ruuWS5LaIwH92beedTgieAH/Cl0ikUg4HQJQM8PDw9q+fbvWrVun9vZ2p8Mpk8tZ/eyFY7r7gV49uvdUXc4ZDvhGe2B0RErmzygfdtIWDjABaBNp5DwHZgp5Di8gz6fmN69drrltYW3bd1p+n1Ek6Fc44FMk6Fck6Bt57jNGt33pCafDRROj6AEAZyGZyeo7Tx3Sp7f06qVjsRk5ZsjvKwwrGR1aMjrsZHS7o4ViBgAAaH6/snahfmXtwgnbJDPZOkUDt6LoAQDTMJBI6yuP7NfnHtqjowPJKb0n4DMlK5fk58coG3ZSKGbMigYpZgAAAEziz7/9rCJBv65dOVvvv2GlfD5+fkJ1FD0AYAqO9Cf02Yf26CuP7FcsWX0OnQUdYd28foUuWtQxMnfG7GiI/4wBAABmyNaXTkiS7ttxVJJ0y8aecdvlclbD6ezI8Bl4E0UPl/D5WLIJ7uXz+RSJRBzJ8xePDuqeLb36zlMHlc5Wn5X0vPltum1Tj95w+RKWUMNZcTLPgXohz+EF5PnM8hujgM8okxv/57C/+sHz+vGOo0qks4qnshpOZTWcziqeyiiRzuWP4TN6/aWL9Le/fhk/p3kQRQ+XiEajTocA1Exra6uuvfbaup3PWqtH95zS3Vt69dOdxyZse+3K2bp9c49etmY+vTlwTuqd54ATyHN4AXk+swJ+n152/nz95PmjVds8umfiyeSzOatvP3VIr7t0sV510YKZDhENjqIHABRkc1Y/fu6IPrWlV0/3nanazhjpNWsX6rZNPbpiWVcdIwQAAPCef3rn5frKI/u1/1Rc33jigOKps5vcdN/JoRmODM2AoodLDA0NqaOjw+kwgJqIxWJ65plndOmll6qtrW3Gj59IZ/WNJw7o3q292nsyXrVdKODTW69cqls29mjl3NYZjwPeVus8BxoBeQ4vIM9nXjQUGJm345YNPXrtP22dcI41oBRFD5ewtvpcA0Czs9YqnU7PeJ6fHkrpS7/cpy/8Yq9ODqWqtutsCeo965fr5utXaG5beEZjAIpqledAIyHP4QXkeW0tmxPVt377ev14x1ElMzm1BP2KhvxqCRUeg8XtgO763nN6cn/13rvwBooeADyn71Rcn3lwj77+WJ+G09W7Ry6Z1aJbN67U267uVjTE7RIAAKARnLegXectaJ+0XVuYn99A0QOAhzx7sF/3bOnVD7YfVrbKDOCStHZxh27fvEqvvXihAn5m+AYAAACaFUUPAK5mrdXWl07oni29enDXiQnbbjxvrm7ftEo3rJ4jY1iJBQAAAGh2FD1coqWlxekQgJqJRqO6/PLLp7U0czqb039tP6xPPdCr5w8PVG3n9xn96qWLdNumHq1d3DkT4QJn5WzyHGg25Dm8gDwHGgtFD5fw+/1OhwDUjN/vV2fn1AoSQ8mMvv5Ynz7z4B4dPDNctV005Nfbr+7WBzas1NIufiiB86aT50CzIs/hBeR54xpIZLT3xJAWdkYUCfL7k1dQ9HCJZDLpdAhAzSSTSfX19am7u1vh8PirpxwfTOoLv9irL/1yn/qH01WPNbctpPdev0Lvum65ZkVDtQoZmLap5DnQ7MhzeAF53rj+6f6X9E/3v6Sg3+hv3nKp3rxu6bSPkc1ZDaUyiiUyGkpmFEtmNJTMyu8zuqy7k8nvGxCfiEuk09V/yQOaXSqV0sGDB7VgwYIxPzz0Ho/p01v36JvbDiiVyVU9xsq5rbp1Y4/evG4JlX00pInyHHAL8hxeQJ43vnTW6o5/f1qhgK9QuMhqKJkvYgwWHoeSGQ0mMhpK5YsasWS+0DHRyn8r5kT1jd+6XnPb+NwbCUUPAE1p2/7TuueBXv1oxxHZ6gux6PLuWfrg5lV61UUL5PcxOSkAAIBXLOqMTLj/d77y5Iyeb+/JuH703BH95rXLZ/S4ODcUPQA0jZy1+smOo7pnS68e3XtqwrY3Xjhft21apatXdLESCwAAgAfdsrFHP915XCdi9ZsK4FQsVbdzYWooegBoeKlMTlv60rrrsSfUeyJetV3Qb/SmK5bo1o09Om9Bex0jBAAAQKNZs6Bdv/yTV2jvybgkqxv/YYvTIcEBFD1cIhDgo4T7DCTS+soj+/WZrb06PkHVvD0c0G9ct0zvv2GlFnRM3I0RaFTBYFCLFy9WMBh0OhSgZshzeAF53lgCfp9Wz2+TJN397iv1N/+9U8cGk2oN+9UWDqgtHFBr4bG43RoOqD0SUGvIP7o9XruQX7/9b9v04x1HHf4uMRF+U3aJSIRf9OAeh/uH9bmH9uorj+xXLJmp2m5hR0Tv37BC77xmmdoj/GCB5haJRHTeeec5HQZQU+Q5vIA8b1y/snahfmXtQqfDQJ1R9HCJbLb6LMJAs3jhyKDu2dKr7z59UOls9dlJ1yxo022bVunXLlusUMBXxwiB2slms4rH44pGo/L7WWEI7kSewwvIc0iStVbD6awGE5nCV1qx5Oh28fVEJqvLl87Say5eyDx0NULRwyWGh4fV1dXldBjAtFlr9cieU7r7gd362QvHJ2x71bJO/Y9XrNHLzp/HfwpwnXg8rm3btmndunVqb2dOGrgTeQ4vIM+97Z4tvbr3wT2KJTPK5iZYYrDCna+/SO+7YWUNI/Muih4AHJHNWf3ouSO6+4HdevpAf9V2xkg3nj9X67uG9NZXXMYPDwAAAGhYgxMMzZ7If28/QtGjRih6AKirRDqr/3jigO7d2qt9J6uvxBIO+PTWq5bqlg09mhPOadu2bXWMEgAAAJjcTM0rN5TK6EQsqXDAx1x1M4yiB4C6OD2U0pd+uU9f+MVenRyqvhLLrGhQN69foZvXL9fctrAkaXBwsF5hAgAAAFP2liuXTDofnSRFgvliRnthNZjBZEa9x4dG9j93aEBX/dVPZIz0psuX6G9//VIF/MxdNxMoergE8xugUfWdiuszD+7R1x/r03C6+oS7S7tadMuGlXrb1d2KhspvTcYY+f1+8hyuRp7DC8hzeAF57i3Xr5qr//7wJm3bd1rBgFFbOKj2SH5Z245IcGS528rJ9//j8T79wTeeGXM8a6X/fPKg3n51t67tmVOvb8PVKHq4RGtrq9MhAGWePdivu7f06gfPHNJEczitXdyh2zev0msvXli1mt3W1qYNGzbUKFKgMZDn8ALyHF5AnnvP6vltWj2/bVrvmdcennD/gdPDuvZcgsIIih4AZoy1VltfOqG7t+zWQ7tOTth243lz9cHNq3T9qjn8JQQAAACecl3PHF2zYrYe3XvK6VBcj6KHS8TjcXV0dDgdBjwqnc3pB88c1t1bevX84YGq7fw+o9dfuki3bVqlixZPPV+Hhoa0Y8cOXXTRRfRqgmuR5/AC8hxeQJ5jKiJBv75623V66digEumcfv8/ntauYzGnw3Ilih4ukcvlnA4BHjSUzOhrj/Xpsw/u0cEzw1XbRUN+vePqZXr/hhVa2hWd9nlyuZzi8Th5Dlcjz+EF5Dm8gDzHVPl9RhcszP8hsCXodzga96LoAWDajg8m9flf7NGXf7lf/cPpqu3mtoX0vhtW6jevXaZZ0VAdIwQAAAAAih4ApqH3eEyf3rpH39x2QKlM9b9e9Mxt1S0be/TmdUsUoWoNAAAAwCEUPQBMatv+07r7gd368Y6jshOsxHLFslm6fdMqveqiBfL7mJwUAAAAgLMoerhEJBJxOgS4TC5n9dOdx3T3lt16bO/pCdveeOF83b55la5a3lWTlVhaWlq0du1atbS0zPixgUZBnsMLyHN4AXkONBaKHi4RCPBRYmYkM1l958lDunvLbu0+PlS1Xcjv0xuvWKzbNvVo9fz2msYUCAQ0d+7cmp4DcBp5Di8gz+EF5DnQWPhN2SVSqZTTIaDJ9Q+n9ZVH9utzD+3RscFk1XbtkYB+89rlet8NK7Sgoz49jFKplI4cOaKFCxcqFGJCVLgTeQ4vIM/hBeQ50FgoergERQ+crcP9w/rcQ3v1lUf2K5bMVG23sCOiD2xYqXdc0632SLCOEUrJZFJ79uxRV1cXPzzAtchzeAF5Di8gz4HGQtED8KgXjgzqni29+s5TB5XJVZ+ddM2CNt2+aZVef9lihQK+OkYIAAAAAOeGogfgIdZa/bL3lO7Zsls/e+H4hG2v65mt2zet0svOn1eTyUkBAAAAoNYoegAekM1Z/ei5I7r7gd16+kB/1XY+I9108SLdtqlHl3XPqmOEAAAAADDzKHq4BKu3YDyJdFb/8cQB3bu1V/tOxqu2Cwd8eutVS3XLhh6tmNtaxwinpjgLOnkONyPP4QXkObyAPAcaC/8SXSISqc8qGmgOp4dS+uLD+/TFh/fq5FD1SW5nRYO6ef0KvWf9cs1pC9cvwGkqrncPuBl5Di8gz+EF5DnQWCh6uEQul3M6BDSAvlNx3bu1V//++AENp7NV23XPbtEtG3r01quWKhpq/NtALpdTOp1WMBiUz8dkqnAn8hxeQJ7DC8hzoLE0/m87mJJ4PK5Zs5iDwau2H+jX3Vt267+2H9YEC7Ho4iUdun3TKt108UIF/M3zn/DQ0JC2bdumdevWqb293elwgJogz+EF5Dm8gDwHGgtFD6BJWWu15aUTumfLbj206+SEbTetmacPburR+lVzWIkFAAAAgGdQ9ACaTDqb0/efOaR7tuzR84cHqrbz+4x+7bLFunVjjy5a3FHHCAEAAACgMVD0AJrEUDKjrz3Wp89s7dWh/kTVduc4yw0AACAASURBVNGQX++8Zpnev2GllsxqqWOEAAAAANBYKHoADe7YYEJf+MVefenhfRpIZKq2m9sW1vtuWKF3XbtcndFgHSMEAAAAgMZE0cMlWltbnQ4BM2z38Zju3dqrb247qFSm+uo8PXNbdeumHr3piiWKBP11jLB+2tratHHjRuYjgauR5/AC8hxeQJ4DjYWih0twU3WPJ/ad1t0P7NZ9zx+VnWAllnXLZun2zav0qgsXyOdz9+dvjCHH4XrkObyAPIcXkOdAY6Ho4RLDw8Pq6GCyymaVy1ndv/OY7n5gtx7fd3rCtjdeuEAf3Nyjq1bMrlN0zovH43rxxRe1Zs0aRaNRp8MBaoI8hxeQ5/AC8hwzIWut+uNpdbQEKKKdI4oeLpHNZp0OAWchmcnq208e1D1berX7+FDVdiG/T2+6Yolu3bRSq+d7b733bDar/v5+8hyuRp7DC8hzeAF5jpnwh994Rn+oZ9QVDeqTv7FO16+e63RITYuiB+CA/uG0vvLIfn3uoT06Npis2q49EtC7rluu912/QvM7InWMEAAAAIDTTsfT+qsfPK//+vBGp0NpWhQ9gDo63D+szz64R199tE+xZPWVWBZ1RvSBDSv19qu71R5hJRYAAADAzWZNsPri/lPxOkbiPhQ9gDrYeWRA92zp1XefOqRMrvrspOcvaNftm3v0q5cuVijgq2OEAAAAAJzy7uuW6xe7Tyo7we8KODsUPVwiHA47HQIqWGv1y95TunvLbv38heMTtl3fM0e3be7Ry9bMY6KicUQiEa1Zs0aRCEN84F7kObyAPIcXkOc4G69eu1D337FZO48M6OCZhP7y+zucDsk1KHq4RDDIEIhGkc1Z/fDZI7pny249faC/ajufkW66eJFu29Sjy7pn1THC5hMMBrVo0SKnwwBqijyHF5Dn8ALyHGdrxdxWrZjbqicmWc0R00PRwyXS6bTTIXjecCqrbzzRp3sf3KN9J6uPu4sEfXrrld26ZeNKLZ/TWscIm1c6ndaJEyc0d+5cCnxwLfIcXkCewwvIc6CxUPRwiWSy+gogqK1TQyl98eG9+uLD+3RqKFW1XVc0qJvXr9DN65drThvDkaYjkUjoxRdfVFtbGz88wLXIc3gBeQ4vIM+BxkLRAzhLfafiundrr77+eJ8S6VzVdt2zW3Trxh699cputYT8dYwQAAAAALyNogcwTdsP9OvuLbv1X9sPa6LJlS9Z0qnbNvXoposXKuBnJRYAAAAAqDeKHsAUWGu15aUTuvuB3frF7pMTtt28Zp5u39Sj9avmsBILAAAAADiIoodL+P0Mm6iFdDan7z9zSHc/0KudRwartgv4jH7tssW6dVOPLlzUUccIvcHv96uzs5M8h6uR5/AC8hxeQJ4DjYWih0u0tLQ4HYKrxJIZfe3R/frsg3t0qD9RtV1ryK93XLNM79+wUktm8RnUSjQa1eWXX+50GEBNkefwAvIcXkCeA42FoodLWDvB5BKYsmODCX3hF3v1pYf3aSCRqdpubltY77thhd517XJ1RpmVu9astbLWyhjDkCG4FnkOLyDP4QXkOWZaJpfTT3YcVdZaXbm8S3NZCXJaKHq4xNDQkDo7O50Oo2ntPh7TvVt79c0nDiqVrb4SS8/cVt22qUdvvGKJIkG6LNZLLBbTtm3btG7dOrW3tzsdDlAT5Dm8gDyHF5DnmGmJdE63fPFxSfk/vn7rt69X9+yow1E1D4oe8LQn9p3S3Q/06r7nj2qizjJXLu/S7Zt6dOOFC+TzUbEHAAAAUH8nYkn997OHddumVU6H0jQoesBzcjmr+3ce090P7Nbj+05P2PZVFy3Q7Zt6dNWK2XWKDgAAAICXdXdNPFfgmXi6TpG4A0UPeEYyk9W3nzyoe7b0avfxoartQn6f3rxuiW7Z2KPV89vqGCEAAAAAr5vfEdGHX3me/uVnu5TNMXfjuaLoAdfrH07r3x7Zp889tFfHB5NV27VHAnr3dcv13utXaH5HpI4RAgAAAMCo333VGv3Wy1ZpOJXVnd99Tt99+pDTITUtih6SjDHLJX1I0uskdUtKStot6d8lfdJaG5+Bc6yQ9FuSbpS0SlKrpEFJOyX9UNKnrLXHzvb40SgT2VQ6dGZYn31wj7766H4NpbJV2y3qjOgDG1bqHdcsU1uYfxKNqLW1Vdddd52CQVbKgXuR5/AC8hxeQJ5jpkSCfkWCflUuAvST54/q+cMDmtce1v98xXlMajoJz/+GZ4x5vaQvS+ooeTkq6arC1y3GmNdZa3edwzneLeluSZWDs7okrS98fdgY8w5r7X1ncw6fz3e24bnOziMDuueBXn336UPKTNAd7PwF7bp9c49ef9liBf1cv0bm8/kUDrM0F9yNPIcXkOfwAvIctfbi0ZhePBqTJG3bf0Y/uWOzwxE1Nk8XPYwxV0j6uvLFiJik/yPpZ4Xn75B0q6Q1kn5gjLnKWjt4Fue4QdLnJfkk5SR9QdJ3JB2StEzSeyS9XtJsSd8xxlxsre2d7nkSiYQ6Ojomb+hS1lo93HtS92zp1c9fOD5h2/U9c3T75h5tXjOPtdObxPDwsHp7e9XT06OWlokndgKaFXkOLyDP4QXkOWaaf4LfWXYdi+lkLKk5bRTaqvF00UPSJ5QvcGQkvdpa+3DJvp8aY16S9LfKFz5+T9JHzuIcf6J8wUOS/qe19l9L9j0m6ZvGmL+XdEchljsk/c50T5LJZM4itOaXyeb0w+eO6J4tvXrmQH/Vdj4j3XTJIt2+qUeXLp1VxwgxEzKZjE6cOKFly5Y5HQpQM+Q5vIA8hxeQ55hp16ycrf988mDV/Ux2OjHPFj2MMddI2lh4+pmKgkfR30t6n6QLlR9+8r+ttdNdH+j6wuPJioJHqY8qX+yQ8kNdMInhVFbfeKJPn966R/tPVZ9yJRL06W1XdeuWDT1aNoexbgAAAACay9uv7lYsmdFDu07I7zP6yfNnPRWkJ3m26CHpjSXbnxuvgbU2Z4z5ovLDXmZJermkH0/zPKHC455qDay1/caYE5LmlrTHOE4NpfTFh/fqiw/v06mhVNV2XdGg3nP9Ct28foVmt3JJAQAAADQnY4xu2dijWzb2qD+e1mUfne6vpN7m5aLHhsLjkKQnJmj3QMn2DZp+0eMFSeskrazWwBjToXzBo9geFfafjOveB3v174/3KZHOVW23bHZUt2xcqbde2a2WkL+OEQIAAAAAGo2Xix4XFh53WWsnmhBj5zjvmY5PSbpH0hxjzAettZ8ap83/qmg/balUSgMDAxO2acaJThPprO763nP6+mN9mmio2iVLOnX75h69Zu1CBViJxXXC4bBWrlzJTOhwNfIcXkCewwvIc6CxeLLoYYyJaLRnxYGJ2lprTxtjhiS1Suo+i9N9VvleJTdL+qQx5kpJ35V0WPnVW96t0aE2/9ta+5OzOIe+8IUvTNrmjjvuGNlub2+XJMXjcWWz2bJ2kUhEwWBQqVRKyWSybJ/f71c0GpW1VrFYbMw5Wltb5fP5NDw8PGZy1XA4rFAopHQ6rUQiUbbP5/OptbVVkjQ4OLpIzud/2aevPtpX9Xu6oadLt21aqU3nL1Q2m9VwfKhsvzFGbW1tkqRYLCZryysnLS0tCgQCSiaTSqXKh8sEg0FFIhFls1nF42PnDSlew6GhIeVy5b1PJrqGgUBALS0tyuVyGhoqj1eS2traZIwZ97OZ6BoWPxup/BoWTfTZhEIhhcNhZTIZDQ8Pl+0r/WzGu4bRaFR+v3/a17D0sxnvGhY/m+I17OrqUjKZVDKZPKdrWPxsJrqG55Lf53INE4mE0unyaYOKn825XMPxPpvJrmGz3COKpnINx/tsGu0e0dXVNXK9uUdM7x5RintEXqPeI5YtWyZr7bTzkHtEHj9H5DXyPSIYDJb93DKVa8g9Io+fI0ZVu0cMDo+dYjIWi6nF5F+vxz1ivM+mkXmy6CGpvWR7Kp9YsejRNt0TWWuzkt5jjPmepD+VdEvhq9TPJP312RY8pmrbtm0j25s359dy3rlz55h/+BdccIEWLFig48ePa9euXWX7urq6dOmllyqbzZYdr2j9+vUKhULavXu3Tp48Wbavp6dH3d3dOnPmjHbs2FG2r62tTVdeeaUk6cknnxy5YfzkmfIbiyT5jXTtooBuWhnUso60ukPDMsYoFovp6aefLmsbCoW0fn1+btjt27ePudlcdtllmjVrlg4ePKi+vvLiysKFC3X++ecrkUiM+V6NMdq0aZOk/DWs/Id/0UUXad68eTp69Kh6e8tXIJ4zZ44uvvhiZTKZca/hDTfcoEAgoF27dun06dNl+1avXq0lS5bo1KlT2rlzZ9m+9vZ2rVu3TpLGPe4111yjlpYW7d27V8eOlU9+tHz5cq1YsUIDAwPavn172b5IJKJrr71WkvTMM8+M+Y/g8ssvV2dnp/r6+nTwYPms0osXL9Z5552neDw+Jia/368NG/KjzHbs2DHmZr927VrNnTtXR44c0Z495VPizJ07V2vXrlU6nR73e924caOMMXrxxRfV31++qs+aNWu0aNEinThxQi+++GLZvs7OTl1++eWy1o573Ouuu07hcFi9vb06ceJE2b6VK1dq2bJlOnPmjJ577rmyfdFoVFdffbUk6amnnhrzH8y6devU3t6uvr4+HTp0qGzfkiVLtHr1asViMT311FNl+4LBoK6/Pj9X8rPPPjvmP6dLLrlEs2fP1uHDh7Vv376yffPnz9eFF16oZDI57vfaLPeIoquuukqtra3at2+fjhw5Uravu7tbPT09TXOPKF5D7hHcI4rcdI+YNWuWlixZora2Nu4R/BwhyZ33iGrH5R6Rx88ReWd7jxhKj+3+vn37ds2K5Hu71+MeUfnvvNGZyg/cC4wx3ZL2F55+yVp78yTt9yvfy2O3tXb1WZzvQkl/I+kmjV9oSkj6tqTft9ZWX4uowl133bVUUp8kvelNb9LcuXNH9gUCAUUiEeVyuZH/BIrVwtLtRq++vvHux7X7xOh/Yq+9eIF+9+XLtbAjMvJao1VfJf5CUzRTf6E5ffq0du7cqQsuuEDRaJS/4k7zGvIXmua4R8Tjce3cuXPkB3XuEY37V1zuEWd/j0gkEtqxY4euuOIKGWPGHJd7RB4/R+Q16z1iYGBATz755MjPLVO5htwj8vg5YlS1e0T/cFob/qF84dGffuhazWvPD6eqxz3i0KFD+vSnP13c1X3nnXdOOHrCaV4tesyTVCxRf91a+45J2h+VNF/Ss9baS6Z5ro2SviepU9I+SX8u6T5JpyQtkPRrkv5S0mxJhyS92lr73PhHK1da9Lj11lu1ePHi6YTW8Ky1uugvfqTh9Og/xq/ddp2u65njYFRwwuDgoLZt2zbylwzAjchzeAF5Di8gz1FL463e8uifvlLzS/4oXGsDAwP6+Mc/Xnza8EUPrw5vKS3vTWXISmvhcVqDl4wxYUlfVb7gcUTSddba0v5SByT9qzHmAUmPS1os6QuSrprOedzqRCxVVvCQpO7Z0SqtAQAAAAAo58llLqy1CUnFQWBLJ2prjOnSaNGj+oya43uNpCWF7X+uKHiUxvOcpC8Xnl5pjLlsmudxpQOny7t5BXymbFgLAAAAAAAT8WTRo6A4u81qY8xEPV4uKNl+fprnKF3iduwsMuWeqHLOKfH53PdR9p0uHzO3eFaL/L6x43/hfj6fT9Fo1JV5DhSR5/AC8hxeQJ4DjcWrw1sk6UFJG5XvxXGlpEeqtNtcsv3QNM9ROrvOZNc6WOV9U1I6SZJb9J0q7+nRPbvFoUjgtNbW1pFZywG3Is/hBeQ5vIA8BxqLl8uP3y7Zft94DYwxPknFlV3OKL+07HSUro+1cZK2pcWVPVVbeUjl8JbuLvcVdgAAAAAAtePZooe19lFJWwtPP2CMWT9Os9/T6BCVT1hry9YvMsa8zBhjC1+fH+f990sq/ub+W8aYcVd+McbcJOlNhacHJT01XruJjLccUbM7UDG8hUlMvSsWi+nBBx8cd+kywC3Ic3gBeQ4vIM+BxuLl4S2S9GHlh6y0SPqxMeavle/N0SLpHZJuK7R7UdLfT/fg1tozxpiPSfqopHZJvzDG/LPyS9aeVn7J2jdIulWjBag/ttbmxjveJOea7lsaXuXwlqVdDG/xKmutstmsK/McKCLP4QXkObyAPAcai6eLHtbaJ40xb1d+5ZQOSX89TrMXJb3OWjs4zr6p+CtJs5UvsLRJ+pPCV6W0pD+11n55nH2ek81ZHTxT3tNjKcNbAAAAAADT4NnhLUXW2u9JulTSx5UvcMSVn7/jcUl/JOkKa+2uczi+tdb+rqSrJX1K0rOSBiVlJfUrv2rLP0i62Fr7d+fwrbjK0YGE0tny6jgTmQIAAAAApsPTPT2KrLX7JN1R+JrO+34uaUprqFprn1D5srSYQOXQlkjQp3ltYYeiAQAAAAA0I8/39HCLlhZ39YKonMR0aVdUxkypvgQXikajWrdunSuXZgaKyHN4AXkOLyDPgcZCTw+X8Pv9Tocwo/pOM4kpRvn9frW3tzsdBlBT5Dm8gDyHF5DnQGOhp4dLJBIJp0OYUX2nKparZRJTT0skEnrppZdcl+dAKfIcXkCewwvIc6CxUPRwiUwm43QIM6qypweTmHpbOp3WoUOHlE6nnQ4FqBnyHF5AnsMLyHOgsTC8BQ3p4Gl6egAAAADAZG770hNKZ3O6duUc/fFNFygUoG9DKYoeaDjpbE6H+yuKHrMpegAAAABApaf6zkiSnjs0oPkdYX1w8yqHI2oslIDQcA6dGVbOlr/GRKYAAAAAvM7vn3hFy6cLBRCMoujhEsFg0OkQZkzlJKbt4YA6W9zz/WH6QqGQlixZolAo5HQoQM2Q5/AC8hxeQJ6jltrCAV22tLPqfmur7vIshre4RDgcdjqEGTNmudrZURkzcUUT7hYOh7V69WqnwwBqijyHF5Dn8ALyHLX26fdcpf/78906NpjUgVNxPX2g3+mQGho9PVwim806HcKMOVC5cgtDWzwvm82qv7/fVXkOVCLP4QXkObyAPEetzW+P6M7Xr9Unf2OdXnHBAqfDaXgUPVxieHh48kZNonJ4y1JWbvG8eDyup556SvF4fPLGQJMiz+EF5Dm8gDwHGgtFDzScyuEt3bPp6QEAAAAAmD6KHmg4lT09uunpAQAAAAA4CxQ90FAS6axOxJJlr3XPpugBAAAAAFMxmEgrmWFOmSJWb3EJt6xuUjmJqSQtZSJTzzPGKBgMuibPgfGQ5/AC8hxeQJ7DST987oh++NwR+X1Gt2/q0R++5gKnQ3IcPT1corW11ekQZkTl0JbZrSG1hqnNeV1bW5uuv/56tbW1OR0KUDPkObyAPIcXkOdoBNmc1b/+fPe4f1T2GooeaChjJjGllwcAAAAAjKs17J9w//5TFD0oeriEW5bE6qv4R7mU+TwgaWhoSI888oiGhoacDgWoGfIcXkCewwvIc9TTqy9aqI5I9Z7xf/X953XTJ7bqd7/+lPrj6TpG1jgYN+ASuVzO6RBmxIHTrNyCsXK5nBKJhGvyHBgPeQ4vIM/hBeQ56mnZnKh+8KGNenDXCQV8Rh/93g4NJjMj+3ccHpAkPX94QAGf0f//1sucCtUx9PRAQ6kc3sIkpgAAAABQXffsqN55zTK99aputYSqD3d5+sCZOkbVOCh6oKFUTmTKcrUAAAAAMDXX9cypus/aOgbSQBjegoYxkEirf7h8nBkTmQIAAADA1PyfN1+iRZ0R7T05pIHhjB7uPel0SI6j6OESkUjE6RDO2YGKXh7GSEsoekBSS0uLLrnkErW0kA9wL/IcXkCewwvIczipNRzQn7z2QknS9585RNFDFD1cIxBo/o+ycj6PBe0RhQMTL8EEbwgEApo9e7bTYQA1RZ7DC8hzeAF5DjQW5vRwiWQy6XQI52zMcrX08kBBMpnU3r17XZHnQDXkObyAPIcXkOdAY6Ho4RLpdPOvuTxmuVomMUVBKpXSvn37lEqlnA4FqBnyHF5AnsMLyHOgsTT/mAi4RmVPDyYxBQAAAICZcbg/oXd/5hFJ0q9fuVRvuHyJwxHVB0UPNIzKnh5L6ekBAAAAADMilsxo60snJElbXzqh8xe264KFHQ5HVXsMb0FDsNaOmciUOT0AAAAA4Oz4jZlw/7Z9Z+oUibMoerhEs6/ecmoopXgqW/Zadxc9PZAXCAQ0f/78ps9zYCLkObyAPIcXkOdoFJd1z5JvgrpHztr6BeMg/iW6RCQScTqEc9JXMbTF7zNa1Nnc3xNmTktLiy688EKnwwBqijyHF5Dn8ALyHI1i8awWfeY9V+vfHtmndNbq2YP9OjnkvQl2KXq4RC6XczqEc3KgYmjL4lkRBfx0REJeLpdTMplUOByWz0dewJ3Ic3gBeQ4vIM/RSF5+wXy9/IL5kqS3fephnRw6NbLv4d6TOjaQ0OJZLXrLlUsVdOnvX+78rjwoHo9P3qiB9Z2qWK6WoS0oMTQ0pEcffVRDQ0NOhwLUDHkOLyDP4QXkOZrFD545rH/66S798X9u1599a7vT4dQMRQ80BCYxBQAAAABn/Nf2I06HUDMUPdAQ+k6VFz3o6QEAAAAAM2fl3Naq+4bT2ar7mh1FDzSEAxUTmXbPpugBAAAAADPld16xWmsXd8gYqTXkdzqcumEiUzgul7M6OKbowfAWAAAAAJgp3bOj+sGHNiqTzenFozG99p+2Oh1SXVD0cIm2tjanQzhrxwaTSmXLV59heAtKtbe3a/PmzU6HAdQUeQ4vIM/hBeQ5Gp3XVsn01neLhlQ5iWko4NPctrBD0QAAAAAA3IKih0sMDw9P3qhBVU5iurSrRT6fcSgaNKJ4PK5t27Y1/dLMwETIc3gBeQ4vIM+BxkLRwyWy2eadbXfMJKYMbUGFbDarwcHBps5zYDLkObyAPIcXkOdoRtZaWWudDqMmKHrAcWOWq2USUwAAAACom5yV3vJ/f6H7dhxVLueu4gdFDziuck6PpfT0AAAAAICa6YwGx7y2bf8Z3frFx/XOT/9SA4m0A1HVBkUPOK7vFMNbAAAAAKBelsxq0SsumD/uvkf2nNK3nzxY54hqh6KHS4TDzbnaSTqb0+H+iqIHw1tQIRKJ6IILLlAkEnE6FKBmyHN4AXkOLyDP0SzufveV+sjrL9KSWWN//9pzYsiBiGqDoodLBINjuyc1gyP9CVUOGaOnByoFg0EtWLCgafMcmAryHF5AnsMLyHM0i6Dfp/fesFI//4OX6cYLx+/14QYUPVwilUo5HcJZqZzEtC0c0KxxxpfB21KplA4ePNi0eQ5MBXkOLyDP4QXkOZpN0O/T3LbmHDkwFRQ9XKJZb6pjJzFtkTHGoWjQqJLJpHbt2qVkMul0KEDNkOfwAvIcXkCeA42FogccVTmJKSu3AAAAAABmCkUPOOpARU8PJjEFAAAAAMwUih5wVN9plqsFAAAAANQGRQ+X8Pv9TodwVionMl3aRU8PjOX3+9XV1dW0eQ5MBXkOLyDP4QXkOdBYAk4HgJnR0tJ8xYJEOqtjg+UTPHXPpqcHxopGo7r00kudDgOoKfIcXkCewwvIc7jB9gP9+s5TB3Xxkk6tmtfmdDjnhKKHS1hrnQ5h2g5UDG2RKHpgfNZaZbNZ+f1+VveBa5Hn8ALyHF5AnsMNHt93Wo/vOy1J+sCGlfpfv3qRwxGdPYa3uMTQ0JDTIUxb5SSmXdGg2sLU4TBWLBbTQw89pFgs5nQoQM2Q5/AC8hxeQJ6jGU30e9hnH9qj/uF0HaOZWRQ94Jgxk5jSywMAAAAA6u6NVyxRJDh+ecBa6Uw8VeeIZg5/VodjDjCJKQAAAAA47uIlnfrp771MP3n+qHYdi+mLD+9zOqQZQ9EDjumrGN7CcrUAAAAA4IzFs1p08/oVSmayrip6MLwFjqmcyHQpw1sAAAAAADOInh4uEY02X8Gg71RlTw+Gt2B8ra2tWr9+vQIBbllwL/IcXkCewwvIc6Cx8C/RJXy+5uq0E0tmdDpePgPwUoa3oAqfz6dQKOR0GEBNkefwAvIcXkCeA42luX5TRlWJRMLpEKalspeHxESmqG54eFjPPvushoeHJ28MNCnyHF5AnsMLyHOgsVD0cIlMJuN0CNNSWfSY3x5WJOh3KBo0ukwmo5MnTzZdngPTQZ7DC8hzeAF5DjQWih5wROUkpt1MYgoAAAAAmGEUPeCIscvVMrQFAAAAADCzKHrAEX2nKparZRJTAAAAAMAMo+jhEs02Q/SByp4es+npgerC4bB6enoUDoedDgWoGfIcXkCewwvIc6CxsGStSzRT0cNaO3ZOD3p6YAKhUEjd3d1OhwHUFHkOLyDP4QXkOdBY6OnhEul02ukQpuxMPK1Ysnw2ayYyxUTS6bSOHz/eVHkOTBd5Di8gz+EF5DnQWCh6uEQymXQ6hCmrnMTU7zNa1BlxKBo0g0QioR07diiRSDgdClAz5Dm8gDyHF5DnQGOh6IG6q5zEdGFHRAE/qQgAAAAAmFn8pom6G7NcLZOYAgAAAABqgKIH6m7Myi1MYgoAAAAAqAGKHi7h8zXPR1k5vIVJTDEZn8+ntra2pspzYLrIc3gBeQ4vIM+BxsKStS4RjTZP4aByeMvSLoa3YGKtra268sornQ4DqCnyHF5AnsMLyHOgsVB+RF3lclYHTtPTAwAAAABQexQ9XCIWizkdwpSciCWVyuTKXmNOD0xmcHBQW7Zs0eDgoNOhADVDnsMLyHN4AXkONBaKHqiryqEtoYBP89vDDkWDZmKtdToEoObIc3gBeQ4vIM+BxkHRA3VVOYnp0lkt8vmMQ9EAAAAAANyMogfqqu9UeU+PJUxiCgAAAACoEYoeqKvK4S1MYgoAAAAAqBWWrHWJlpbm6DExZuUWJjHFFESjUV111VWKRCJOhwLUDHkOLyDP4QXkOdBYKHq4hN/vdzqEKRnb06M5ijVwC+QyigAAIABJREFUlt/vV2trq9NhADVFnsMLyHN4AXkONBaGt7hEIpFwOoRJZbI5HTpTHudSenpgChKJhF544YWmyHPgbJHn8ALyHF5AngONhaKHS2QyGadDmNTh/oSyufLlu7qZyBRTkE6ndeTIEaXTaadDAWqGPIcXkOfwAvIcaCwUPVA3lfN5REN+zW4NORQNAAAAAMDtKHqgbsbM59EVlTHGoWgAAAAAAG5H0QN1c+AUk5gCAAAAAOqHoodLBINBp0OYVF/F8BYmMcVUhUIhdXd3KxRiOBTcizyHF5Dn8ALyHGgsjixZa4yZI+ndkjZJWimpXZMXYKy1dlWN4lku6UOSXiepW1JS0m5J/y7pk9ba+ARvn+65bpT0LkkbJC2SlJF0VNIzku6X9CVrbWy6xw2HwzMVYs30VfT0WMokppiicDisnp4ep8MAaoo8hxeQ5/AC8hxoLHUvehhj3izpM5I6ii9N8a128iZnFc/rJX25JB5Jikq6qvB1izHmddbaXed4ni5Jn5P0hnF2d0g6T9JbJD0s6anpHr8ZVm+pnMi0ezY9PTA1mUxGsVhMbW1tCgQcqdUCNUeewwvIc3gBeQ40lroObzHGXCXpa5I6lS92FAsedpKvWsVzhaSvK190iEn6M0nXS3qlpE8Xmq2R9ANjTPs5nKdT0n0aLXh8S9JvSrpO0tWS3izpE5IOnO05Gn0d8GQmq6OD5TF2M7wFUzQ8PKynn35aw8PDkzcGmhR5Di8gz+EF5DnQWOpdevzjwjlrVsiYpk9IalF+iMmrrbUPl+z7qTHmJUl/q3zh4/ckfeQsz/PPkq5UftjM26y1363Y/7ikbxljfleS/yzP0dAOnh6WrfjUlzKRKQAAAACghuo9kekGlRc8zBS/Zpwx5hpJGwtPP1NR8Cj6e0nPF7Y/bIyZ9myhxpgNys9fIkl/Pk7BY4TNa/xxKmehchLTzpagOiKNP/kqAAAAAKB51bvoMavwWCxk/L3yc1m0SQpYa30TfM10D4g3lmx/brwG1tqcpC+WxP7yszjP7xQe+yX9y1m83xUOnGa5WgAAAABAfdW76HGs8Ggl3Wet/QNr7W5rbbxQYKinDYXHIUlPTNDugZLtG6ZzAmNMSKPzeNxnrU0UXvcbY7qNMSuMMZHpHHOCc83EYWqm71TFJKbM54FpMMYoFAo1fJ4D54I8hxeQ5/AC8hxoLPUuejyg0V4evXU+d6ULC4+7JhlSsnOc90zVZZKKRY3txpgOY8w/Sjohab+kPZL6jTH3GWNeNs1jl2ltbT2Xt9dc35ieHhQ9MHVtbW1av3692tranA4FqBnyHF5AnsMLyHOgsdR7ItN/lvRO5Qsfm40xxtrK6S1rr9C7Ym7h6YQrplhrTxtjhiS1Suqe5qkuKtn2KT9h6XkVbUKSbpT0SmPMn1hr/2aa55AkDQ4OTtqmo6Nj0ja1cuBUedFjaRfDWwAAAAAAtVXXooe19lFjzMck/amkCyR91hjz+9bak/WMQ1Lp8rOxKbQvFj2mW66dXbL9R8r3+vihpL+Q9IzyS+W+RdLHlF/G92PGmJ3W2u9M8zy69957J21zxx13jGy3t+cvQTweVzabLWsXiUQUDAaVSqWUTCbL9vn9fkWjUVlrFYuNvXStra3y+XwaHh5WJjPagWZ/RdFjTsSUFWp8Pt9Ib5XxCjjRaFR+v1+JRELpdLpsXygUUjgcViaTGbM0mDFmpMoei8VUWWNraWlRIBBQMplUKpUq2xcMBhWJRJTNZhWPl8cvjV7DoaEh5XLlo7MmuoaBQEAtLS3/j707j3LrvM88/7xV2GojWdxEilUSRZMSJWqhqJWiNsdJujuOu+0kp+Oeyea2HbdPZ8ZpO0t7EsdWemJPnKM4nqzd6jiO44ztZGbidMZZ3Gnb8iZbskRKlOgyRVFkUFwkUlVFVqEKKBTwzh8AWLgAasddcN/v5xycAu69wH0JPLwEf/UuKpfLyuVyTa/b398vY0zLzyadTiuVSqlYLDYtU1z7bKTW7+FCn420+HtY/9m0eg9rn81K38P6z6bVe1j7bGZnZzUxMaEXX3xRe/bsubJ9te9h7bNZ7D1cab6l+c9mLe/hYvley3vY6rNZ6j0M+hohLZ5vF64RMzMzevHFF7V3715t2rSJa8QKrhHtvM5yjajw6xpRKBT04osv6uabb256TYlrRA3fIyo69RoxOTmp55577sr3luW8h1wjKvgeMS/ca0TzQIiZmbwq/yVWy88mygItehhjfk3SrCpze2yV9FOS/rUx5r9LOi1p0eKHtfbX29SU+nk0Zhc8al4tSSvtnlA/5iQj6b9L+mFrbS1dFyT9kTHmeVWG/nRJ+ogx5r/50QPmmWeeuXL/oYcekiSNjIw0/cXfu3evrrrqKl24cEEnTpzw7BscHNStt96qUqnkeb2agwcPKpVK6aWXXtJrr1U+zvyc1fi09+Jx+exJPXP51JXH/f39uuOOOyRJhw8fbrpg3Hnnnerr69Pp06d1/vx5z77h4WHt2rVLU1NTevbZZz37UqmUDh48KEk6evRo08Xmtttu04YNG3TmzBlls1nPvm3btumGG25QPp9v+rMaY/Tggw9KqryHjX/xb7rpJm3ZskWvvPKKTp70juTatGmTbr75Zs3NzbV8Dw8dOqREIqETJ05ofHzcs2/37t3asWOHxsbGNDIy4tk3MDCgAwcOSFLL17377rvV09OjU6dO6dVXX/Xsu/baa7Vz505dvnxZR48e9ezLZDK65557JEnPPfdc0z8E+/fv1/r165XNZnXmzBnPvquvvlp79uzR9PR0U5u6u7t1//2VqXWOHTvWdLHft2+fNm/erPPnz+vll1+WJH33u5XFlDZv3qx9+/apWCy2/LM+8MADMsbo+PHjunTpkmff9ddfr+3bt+vixYs6fvy4Z9/69eu1f/9+WWtbvu69996rdDqtkydP6uLFi5591113na655hpNTEzohRde8Ozr7e3VXXfdJUk6cuRI0z8wBw4c0MDAgLLZrM6ePevZt2PHDu3evVtTU1M6cuSIZ18ymdR9990nSXr++eeb/oG/5ZZbtHHjRp07d06nT5/27Nu6datuvPFGFQqFln/WIK8RNbt27dLw8LAmJiZ07Ngxzz6XrhHZbFabNm3iGrGKa0QN14iKKF4jBgYGNDs7q1Kp1PT3UeIaUcP3iIpOvUaUy2XNzc1d+d5SwzWigu8RFVG+RoyPjTU97+TJl7R3aNOVP2snMUGOLjHGlNW8ZK0ati2oXSu4GGO2aH5S1c9Za9+6xPGvqFKked5ae8sKzvMLkn6rbtMBa+3hBY79S0k/Vn14m7X2uaVe/5FHHhmSlJWkt7zlLdq8efOVfYlEQplMRuVy+co/ArVqYf39IKqvL76a04885p0r9qlfOqRMcv7jpPo6j9/QVNT/hmZ8fFwjIyPau3event7+S3uCt9DfkPTGdeI6elpjYyMXPmizjUiur/F5Rqx+mtEPp/XsWPHdPvtt7ec5JFrRAXfIyo69Rpx+fJlHT58+Mr3luW8h1wjKvgeMS/Ma8TUTEE3P/KPnn1//3P3Xil6nD17Vo899lht1/AHP/jBRaeMCFtYRY/GYsdypja2bSx6ZCTVEvsFa+0PL3H8lCq9Nr5lrT24gvO8S9IfVR9esNZuXeTYd0iqJecd1to/Xur164se73znO3X11Vcvt2mB+sdjr+gdn/rOlceb+9P6zq9+f4gtQqeZnJzUM888c+U3GUAckXO4gJzDBeQcna4wV9INv/r3nm2P/+LDunZTpXB0+fJlfexjH6vtinzRI+jVW2qsvL077BK39p68snRsrT/U0GLHGmMGNT9MJbvYsS3UH79UEOqP3bLC80Ra88otTGIKAAAAAPBfGEUPs4qbH2oDvXYbYxab22Rv3f3vLnhUa/UD8pbqpVK/f7EldFvKZDJLHxSS0XFvN7DhQZarxcr09PTotttu80wGBsQNOYcLyDlcQM6BaAl6ydq3BXy+xXxd0gOq9OK4Q9K3Fzjuobr731jJCay1p40x/yTpGkk7l1ii93V1988scMyCEomgP8rly47R0wNrk0gktGHDhrCbAfiKnMMF5BwuIOdAtAS9ZO2fBnm+JXxe0vur99+mFkUPY0yXKivMSNKEpC+v4jz/j6T/oMrytG+Q9I8LHPcjdfe/vtKTNE5gEyVZenpgjQqFgs6cOaMdO3YonU6H3RzAF+QcLiDncAE5B6IlrDk9QmetfVLS16oP326MaTVB6fsk3Vi9/3FrrWcqX2PMw8YYW719coFT/Y6k2vTBv22MWdd4gDHmJyQ9XH34BWvtSucOaZplOCqstRpt6OkxRNEDKzQ7O6tsNts06zUQJ+QcLiDncAE5B6IlMkUPY0xiibk1/PAeVVZxSUj6ojHm/caYe40xrzfG/GdJH60ed1zSo6s5gbX2nyT9WvXhLZKeNMa8zRhzR/U8vyvpk9X9l1XpFRIbl2aKmix4pyhheAsAAAAAIAihTQRhjElJ+reS3izpLkkbqtsnJD0l6a8k/Ym11rcSqbX2sDHmxyV9WpXhJx9ucdhxSW+01jYv6Lz88/yWMWajpF+WdIOkT7Q47FVJb7bWvrja80RR4ySmXUa6egNFDwAAAACA/0Lp6WGMOSDpe5J+X9IPSBrU/Eotg9VtfyBpxBhzu59tsdb+jaRbJX1MlQLHtCrzd3xHlSLF7dbaE204z/slHZL0Z5JOSSpIuqRKgecDkq631j6x1vNETeMkptvX9yjZHZkORgAAAACAGAu8p4cx5lZJX5XUo/nlaBtXNKlt3ynpq8aYg9ba5/1qk7X2tKT3Vm8red5XtIIldatFDV8KG1FdvSU73jifB708sHLJZFLbtm1TMpkMuymAb8g5XEDO4QJyDkRLoP9Trq6G8llJvaoUOhZavrV+e5+kzxpjbllkuVfnZTKZsJvQUnbMO7yFSUyxGplMRjfccEPYzQB8Rc7hAnIOF5BzIFqCHmfwI5L2ylvUMAvc6t0o6UeDaGCnKpVKYTehpcaeHkxiitUolUrK5XKRzTnQDuQcLiDncAE5B6Il6KLHm+vuG0kXJf28pD2SMtXbnuq2i4s8Fw1mZmaWPigEjROZDtPTA6swPT2t73znO5qenl76YKBDkXO4gJzDBeQciJagJ4K4W5VeHkZSTtJ91tqXGo55SdL/aYz5O0mHNT/3x91BNhRrZ63VaFNPD4oeAAAAAIBgBN3TY2v1p5X0ty0KHldUl279guaHumxd6FhE04WpgvLFsmcbE5kCAAAAAIISdNGj/n+8jcNXWnmt7n40Z+rEghonMU12G121jo8RAAAAABCMoIse49Wfyx2uUn/MRPubAz81Dm3ZsaFH3V3LXuEX8DCG7CD+yDlcQM7hAnIOREfQc3qc0PwwlQPGmA9Ya/9TqwONMR+QdEDzK72cCKB9Hau/vz/sJjRpmsSU+TywSgMDA3rwwQfDbgbgK3IOF5BzuICcA9ESdNHjcUn3aX4y0w8ZY35C0t9LylaPGZb0zyXtrjvOSvpKwG3FGmXHvD09hli5BQAAAAAQoKCHt/yxpNqC1bWCxh5JPyfpN6u3n6tuq+8TVqo+FwuI4pJY2fHGogeTmGJ1crmcnn76aeVyubCbAviGnMMF5BwuIOdAtARa9LDWnpT0+5ovaFjNFz/qb7XttWN+z1r7cpBt7TTlcnnpgwLWOJEpw1uwWuVyWVNTU5HMOdAu5BwuIOdwATkHoiXonh6S9AuS/lbenhy24VZjVFm29pcCax3aolS2OjvRUPSgpwcAAAAAIECBFz2stXOS3iTpV1RZkaWxl0ftNiHpf5P05upz0EHOX85rrmw92+jpAQAAAAAIUtATmUqSrLVW0keMMR+X9HpJd0naUt19QdJTkr5srY3eRBVYlsZJTHuS3drUlwqpNQAAAAAAF4VS9KipFjW+UL1hDdLpdNhN8GheuaWH9cqxaplMRjfddJMymUzYTQF8Q87hAnIOF5BzIFpCLXqgfZLJZNhN8BgdZxJTtE8ymdSWLVuWPhDoYOQcLiDncAE5B6IljIlM4YPZ2dmwm+DRuFwtk5hiLWZnZ5XNZiOXc6CdyDlcQM7hAnIORIsvPT2MMV+qe/h/W2v/oMX2lbLW2jesrWXxFbWL6ijL1aKNCoWCTp48qQ0bNiiVYm4YxBM5hwvIOVxAzoFo8Wt4y8OaX3r2yALbV8Ks8nkISWNPjyF6egAAAAAAAhbWnB4rmdGSYkeHKcyVdP5y3rNtaJCeHgAAAACAYIVV9KCQEWPnJvKyDZ8ww1sAAAAAAEHzs+ixUG8O1i31QSIRnYV4Goe2rMsktL4nWqvLoLMkEglt2rQpUjkH2o2cwwXkHC4g50C0+PU38bq6+5cX2I42itI64NmGSUwZ2oK16unp0c033xx2MwBfkXO4gJzDBeQciBZfih7W2tMr2Y61K5fLYTfhiqblajcyiSnWplwua25uTolEQl1drLSNeCLncAE5hwvIORAt/C2Mienp6aUPCsjoeMNytfT0wBrlcjk98cQTyuVyYTcF8A05hwvIOVxAzoFoiWTRwxizzhizJex2YHWyY409PSh6AAAAAACCF3jRwxhzdd1tU8O+HzPGfFfSuKTzxpjXjDG/YYxhFswOMsrwFgAAAABABARa9DDG3CcpW3f7QN2+H5L0OUnXq7LCi5E0KOk/SvrjINuJ1ZuendPFqVnPNiYyBQAAAACEIeieHg9qvqAhSX9Zt+/X6rbbupuR9D8bYw4G1UisXuN8HpI0NEhPDwAAAABA8IJePPr2uvs5Sd+SKkNeJN2tSpFD8hY/av4nSU/43cBO1dfXF3YTJDUPbdncn1JvijXKsTb9/f06dOiQuru7w24K4BtyDheQc7iAnAPREnRPjz3Vn1bSUWttqfr4UMNxfy7pH1QpftQKH/f437zOZYxZ+qAAZMe8PT0Y2oJ2MMYokUhEJueAH8g5XEDO4QJyDkRL0EWPzZovYrxYt/2muvtPWmt/UtIbJR2vbjOSrvO/eZ1rZqZ5WEkYWLkFfpientZzzz0XqaWZgXYj53ABOYcLyDkQLWEUPWou192/oe7+NyXJWltWZThLrUQ64G/TOlupVFr6oABkG4a3MJ8H2qFUKml8fDwyOQf8QM7hAnIOF5BzIFqCLnrUn6+/7n590aO+B8hk3X36h3WAxolMhxneAgAAAAAISdBFj4nqTyPpPkkyxmyQtK/umON19+sLI/UFEERU8/AWenoAAAAAAMIR9LIaJyRtrd7fY4z5piqFjVTdMc/W3b+m+tNKOuN/87AWl2aKupyf82yjpwcAAAAAICxB9/R4vPrTqtLb4x5JN9dtO2Ktfa3u+Fs0P/HpSCAt7FCpVGrpg3zW2MvDGGn7hkxIrUGcpNNp7d69W+l0OuymAL4h53ABOYcLyDkQLUEXPf6rpGL1vm34KUl/VLtjjLlF0pa6fU/527TOFoWix2jDJKbb1mWUTrA+OdYulUppx44dkcg54BdyDheQc7iAnAPREmjRw1r7sqR3S5pTpadH7SZJn7fWPlZ3+I9Xf9b2fymQRnaoYrG49EE+YxJT+KVYLOqVV16JRM4Bv5BzuICcwwXkHIiWoHt6yFr7CVWGtHxA0mOSflvSG621P9pw6JOS3lm7WWufCbShHaZQKITdhKbhLUNMYoo2yefzGhkZUT6fD7spgG/IOVxAzuECcg5ES9ATmUqSrLUvSvqNJY75bwE1B22SpacHAAAAACBCAu/pgfhq6ukxSE8PAAAAAEB4KHqgLay1zXN6bKSnBwAAAAAgPL4MbzHGfKLu4RettZ9tsX2lrLX27WtrWXx1d4e7SspruVnNFEuebRQ90C7d3d0aGBgIPeeAn8g5XEDO4QJyDkSLX3N6/Izml6KdkPTZFttXwlSfR9FjAT094Q4laRzakugy2rYuE1JrEDe9vb06cOBA2M0AfEXO4QJyDheQcyBaQpnIVPPL0CImGicxvXpDj7q7+JgBAAAAAOEJa04Pu8IbljA1NRXq+Rt7egyzXC3aaHJyUo8//rgmJyfDbgrgG3IOF5BzuICcA9HiZ0+PhX7Nz6//Y6hpElOWqwUAAAAAhMyvosfr6+6PLrAdMTI63tjTg6IHAAAAACBcvhQ9rLWPr2Q7Ol/j8JahQYa3AAAAAADCFdacHoiRUtnqzIR3eMsQw1sAAAAAACELa/UWtFlvb3hFhlcn8yqWvPPNMpEp2qmvr09333230ul02E0BfEPO4QJyDheQcyBaAi16GGO2S3pn3aaXrLV/vsCxPyFpV92mx6y15/xsXyfr6gqv0052zNvLI5Ps0pZ+LvJon66uLvX0UEhDvJFzuICcwwXkHIiWoHt6vFnShzS/DO2PLHLsRUmfqjv2gqQ/9K1lHS6fz2vdunWhnLt5Po9eGcMiPWifmZkZnTp1Sjt37uRLBGKLnMMF5BwuIOdAtATdPeAHqz+NpLPW2r9e6EBr7d9LOq35JW5/cKFjIc3NzYV27uw4k5jCX3Nzc3r11VdDzTngN3IOF5BzuICcA9ESdNFjb/WnlfSNZRz/RIvnImIah7cMM4kpAAAAACACgi56bJN3uMpSXqv+NNXnIoJGG3p6MIkpAAAAACAKgi561P9vePMyjq8/JtPmtqBNRsfp6QEAAAAAiJ6gix7j1Z9G0uuNMQsu8VHd932a7xky4XPbOloymQzlvMVSWecuNRQ9NlL0QHulUilde+21SqVSYTcF8A05hwvIOVxAzoFoCbro8ZLmJybdIum3Fzn2Y9VjpErh4yUf29XxwloH/OzEjMrWu42JTNFu6XRaO3fuZL17xBo5hwvIOVxAzoFoCbro8bXqT6tK8ePfGWO+YYz5aWPMPdXbTxtjvi7pXXXHSdLXA25rRwlrdujGoS0D6YTW94TT6wTxNTc3p7GxMWZBR6yRc7iAnMMF5ByIlqCLHn+q+eEqtYLGvZI+Iemb1dsnJB3UfLGj5lMBtbEj5fP5UM6bHWtYrnZjr4xp/OiAtZmZmdHRo0c1MzOz9MFAhyLncAE5hwvIORAtgRY9rLUjkj6j+YJGrfDR6lZfHPmstfZYkG3F8mQbV25haAsAAAAAxMqH//a7+rNvndbFqULYTVmxoHt6SNK7Jb0gb+Gj1U3VY45Vn4MIyo55K9hDrNwCAAAAALHyDy+8og98/nm94dHH9cLZS2E3Z0UCL3pYayclHZL0V/L27Kip3/ZXku631l4Oup1YnqaeHhvp6QEAAAAAnSqd6Nb1V/W33HdppqjPHz4TcIvWJoyeHrLWXrbW/qikuyT9pqSvSBqp3h6X9FFJd1trf9Ra21llpJB0dYXyUTZNZDpMTw/4oKurS5lMJrScA0Eg53ABOYcLyDni4Dfecot2bmr9f7sLk501xCUR5smttU9LejrMNsRFb2/wxYZ8sdQU+OGNFD3Qfn19fbrnnnvCbgbgK3IOF5BzuICcIw7u2rlRX3rfw3rpwpR+78sn9NdHzobdpFWj/IhVG20Y2iJJQ0xkCgAAAAAdr6vLaM9VA9p39bqwm7ImoRc9jDH7jTHvNsY8Yox51Bjzr8JuUyfK5XKBn7NxEtONfSn1pUPtPISYmpqa0je/+U1NTU2F3RTAN+QcLiDncAE5B6IltP+hGmP+jaQPSdrdvMv8jaRvS9pU3fY/rLXvDLB5Hcdau/RBbdbY04PlauEXa62KxWIoOQeCQs7hAnIOF5BzIFoC7+lhKh6T9GlJe9RiBRdrbVnSVyXtrN5+0hgzGHRbsbhswySmQ8znAQAAAACIkDCGt/wnSW9Xpchh626N/qL600pKSvrngbQOy5Yda+zpQdEDAAAAABAdgRY9jDG7Jf2SvIUOs8DhT0oar3v8eh+bhlXINg5v2cjwFgAAAABAdATd0+Ndmp9HxEiakvSYWhQ+bGUQ3HN1+24JooGdqqcn+IJD40SmQ/T0gE96e3u1f//+UJZmBoJCzuECcg4XkHMgWoIuerxBlR4eRlJR0v3W2ndV97Ua4nKq+tNIus731nWw7u7uQM93OV/UpZmiZxsTmcIv3d3dWr9+feA5B4JEzuECcg4XkHMgWoIuelxb/Wkl/YO19ugSx9ev87TenybFQ6FQCPR8ow29PIyRdlD0gE8KhYJOnDgReM6BIJFzuICcwwXkHIiWoIse/XX3R5dx/Ka6+6z5tIhisbj0QW3UOJ/HVQMZpRNUs+GP2dlZnTlzRrOzs2E3BfANOYcLyDlcQM6BaAm66FE/Mem1Cx417zbNFzvGFzsQwWpcuWWIXh4AAAAAgIgJuuhxSpX5OYyk7zfGvG6hA40xPyzpxupDK+m4763Dso2Oe4e3DG9koiYAAAAAQLQEXfT4avWnlZSU9BVjzLsajtlhjHm/pM9pftJTSfpaME3Ecow2LldLTw8AAAAAQMQEXfT4E80PV7GSdkj6g+rjWg+QH5P0v0uq/190WdIng2liZ0okEksf1EZNy9XS0wM+SiaTuvrqq5VMJsNuCuAbcg4XkHO4gJwD0RJo0cNa+11Jf6r53hv1PTlqasWP+uLIJ6y1JwNpZIfKZDKBncta2zSR6fAgRQ/4J5PJaM+ePYHmHAgaOYcLyDlcQM6BaAm6p4ck/XtJ35a38NHqpuox35b08wG3seOUSqXAzjWWm9X0rPd8TGQKP5VKJU1OTgaacyBo5BwuIOdwATkHoiXwooe1dkbSw5J+X9Kc5nt2NN5Kkv5Q0vdVn4NFzMwE9xY1TmLa3WW0fT2VbPhnenpazzzzjKanp5c+GOhQ5BwuIOdwATkHoiXYiSCqrLUFSf+LMeb/kPQvJd0jaUt196uSnpL0N9babBjtw+Iah7ZcvSGjRHcYnYYAAAAAAFhYKEWPGmvtGVV6c/xhmO3AyjROYsp8HgAAAACAKAq06GGMqZ+MtCDpDmst/b46TGNPD+bzAAAAAABEUdCUtWQBAAAgAElEQVQ9PYZVmUfESPp7Ch7tY0zjIjj+aZzTg54e8JsxRt3d3YHmHAgaOYcLyDlcQM6BaAm66PGKpO2qrM5yKuBzx1pfX19g5xoda1iudiNFD/irv79f999/f9jNAHxFzuECcg4XkHMgWoKeffJJzS9Vuyngc6MNymXb3NNjI8NbAAAAAADRE3TR44+qP42kHzTGbAz4/C0ZY641xjxqjBkxxuSMMWPGmKeMMb9ojPGlG4MxptcYc9IYY6u3U2t5vaCWxHp1sqDZUtmzjeEt8Fsul9NTTz2lXC4XdlMA35BzuICcwwXkHIiWQIse1tovSvp49eE6Sf+fMebaINvQyBjzJknPSXqvpBsk9UoalHSnpI9KOmyM2e3DqX9d0nXterFyubz0QW3QOIlpKtGlzf3pQM4Nd5XLZU1PTweWcyAM5BwuIOdwATkHoiXo1Vt+TdK4pFFJQ5LukfSiMeZrqhQeJlSZ76Mla+2vt7k9t0v6nKQeSVOSPiLpy9XHb5X0TknXS/qCMeZOa+1kG8/785LykoqSBtrxukEYbbFyS1cXkzQBAAAAAKIn6IlMP6T5ooZVZZhLQtLD1dtS2lr0UKXXSY+kOUk/aK19om7fl4wxL6rS2+N6Se9Tpf1rYozplvSYpG5Jj0h6uzqo6JEdY+UWAAAAAEBnCHpOjxpTvVnNFz+WurW3AcbcLemB6sM/bih41Dwq6bvV++8xxiTbcOr3SLpD0vck/WYbXi9Q2aaVW5jEFAAAAAAQTWEVPWrFjsbHC9388Oa6+3/S6gBrbVnSp6oPN0h6/VpOWJ2/pNZb5d9Za2fX8nr1MplMu15qUY1zegzR0wMB6Onp0b59+9TTQ5EN8UXO4QJyDheQcyBawih6LKdXh6+9PKpqi2fnJD29yHGP190/tMZz/oGkPkl/Zq39yhpfyyORCGakUtNytRQ9EIBEIqHNmzcHlnMgDOQcLiDncAE5B6Il6L+Jbwv4fIu5sfrzhLV2bpHjRlo8Z8WMMW+V9EOqTOT6vtW+zkJmZ9vWaWRBc6Wyzl3Ke7YxvAVBmJ2d1fnz57Vt2zalUqmwmwP4gpzDBeQcLiDnQLQEWvSw1v5pkOdbiDEmI2lz9eHoYsdaa8eNMTlVemgMr/J8g5J+p/rwP1prL6zmdRYzNja25EV13bp1azrHuUt5lcre0Ub09EAQCoWCXn75ZQ0ODvLlAbFFzuECcg4XkHMgWoJesrZb0iZJeWvt5SDP3aB+tZSpZRxfK3r0r/J8vyXpKklPqLJyS9t95jOfWfKY9773vVfuDwxU3oLp6WmVSiXPcZlMRslkUrOzsyoUCle2f+/MuOe4vlS3ukt5TU7OH9PX16euri7NzMxobs7bgSadTiuVSqlYLCqf9/YY6erqUl9fnyRpcrJ5ZeDe3l51d3crn8+rWCx69qVSKaXTac3NzWlmxjv8xhij/v7KxzY1NSVrvUWbnp4eJRIJFQqFpt4yyWRSmUxGpVJJ09PeuUyk+fcwl8s1rcO+0HsoVbo89vT0qFwuK5fLNb1uf3+/jDEtP5vF3sPu7m719laKUK3ew8U+m8Xew/rPptV7WPtsVvoe1n82rd7D2mczOzt75bm1n2t5D2ufzWLvobVWU1PNl4bl5Hst7+Fi+V7Le9jqs1nqPVzNNUJqz3vo6jWi9hqFQkEDAwNcI1ZwjWjndZZrRIVf14jae2qtXXEOXb9G1PA9oiLq1whJTW3mGlHB94iKTrpGNJ6j8XlR53vRwxhjJP1bSe+QdKeq84gYY8Yk/a2kj1hrRxZ+BV/Uz/q5nHEhtU95xWM5jDEPqvLnn1Nl8lK/JmZd0jPPPHPl/kMPPSRJGhkZafqLv3fvXl111VW6cOGCTpw4cWX7N7PeC8Bg2urw4cOebQcPHlQqldJLL72k1157zbNv165dGh4e1sTEhI4dO+bZ19/frzvuuEOSdPjw4aYLxp133qm+vj6dPn1a58+f9+wbHh7Wrl27NDU1pWeffdazL5VK6eDBg5Kko0ePNl1sbrvtNm3YsEFnzpxRNpv17Nu2bZtuuOEG5fN5z3snVS5wDz74oKTKe9h4Ub7pppu0ZcsWvfLKKzp58qRn36ZNm3TzzTdrbm6u6XUl6dChQ0okEjpx4oTGx72Fpt27d2vHjh0aGxvTyIj3r83AwIAOHDggSS1f9+6771ZPT49OnTqlV1991bPv2muv1c6dO3X58mUdPXrUsy+Tyeiee+6RJD333HNN/xDs379f69evVzab1ZkzZzz7rr76au3Zs0fT09NNberu7tb991em1jl27FjTxX7fvn3avHmzzp8/r5dfflmSrvyZN2/erH379qlYLLb8sz7wwAMyxuj48eO6dOmSZ9/111+v7du36+LFizp+/Lhn3/r167V//35Za1u+7r333qt0Oq2TJ0/q4sWLnn3XXXedrrnmGk1MTOiFF17w7Ovt7dVdd90lSTpy5EjTPxQHDhzQwMCAstmszp4969m3Y8cO7d69W1NTUzpy5IhnXzKZ1H333SdJev7555v+gb/lllu0ceNGnTt3TqdPn/bs27p1q2688UYVCoWWf9bVXCMkaXBwULfeeqtKpVLL1+UaUbHYNWJ0dFSbN2/mGrGKa0QN14iKKF4jal/iy+Vy099HiWtEDd8jKjr5GiGp6T3mGlHB94iKTrpGjI56/1ytCkdRZvz8P7gxplfSX0n6/tqmhkOsKsWAn7bWfta3hjS3a4uk2tX6c9baty5x/CuStkp63lp7ywrOk5b0rKQbJD1qrf2FFsecknStpNPW2p3LfW1JeuSRR4YkZSXpLW95izZv3nxlXyKRUCaTUblcvvKPQO2LRv39lVRff/crp/RfvvFPVx4/vGeTfvdf7/M8l+prBb+hqWjXb2jGx8c1MjKivXv3qre3l9/irvA95Dc0nXGNmJ6e1sjIyJUv6lwjov1bXK4Rq+/pcezYMd1+++2q/F7Mi2tEBd8jKjr1GnH58mUdPnz4yveW5byHXCMq+B4xL0rXiE9+K6tH/8d88fCha3u069Wv1R4Of/CDH1x0yoiw+V30+ISkn6nb1Hiy2r92RUkHrbXNpSh/2pWRVEvsF6y1P7zE8VOqDG/5lrX24ArO8+uSPqBKYeJGa21T6tpV9Hj3u9+trVu3ruTpK/bznz2szx+Zrx6/7dBOffBN+xZ5BtAeMzMzOnnypHbt2sXyb4gtcg4XkHO4gJwjbv7LV1/Sh/92vufH9+3q17XnvlJ7GPmih2/DW4wxt6hS8FisqlLbl5T0Uc33CPGVtTZvjHlNlflFhhY7tjoJaV/1YXaxY1v45erPf5T0pla/0ah77b7qCi+S9Kq19ksrOVEmk1n6oDXKslwtQlJb7x6IM3IOF5BzuICcA9Hi55weP91iW6vhLTWvN8YMW2tXWlhYrWOSHpC02xiTWGTZ2r1197+7wnPUpmt+m5ZernezpNpspI9LWlHRo7HLkx+yY95uV8MbKXogGOVyWcViUclkUl1dXWE3B/AFOYcLyDlcQM6BaPHzb+F9dfeNpHFJvyLpTZJ+StJfq7kIsuyhI23w9erPPkl3LHLcQ3X3v+Ffc9am1TiwdsoXS3p10jtebGiQ7noIRi6X07e+9a2W4xKBuCDncAE5hwvIORAtfhY9XqdKTw4jKS/pPmvtR6y1X7DWftpa+xZJvy9v4eN1Pran0efr7rfshWGM6VKlQCNJE5K+vJITWGvNUjdJtamQT9dtf3iFfxbfnZmYadpGTw8AAAAAQJT5WfRYX/1pJf2jtfZ4i2N+p+4YSdrgY3s8rLVPSqpNOft2Y0yrXibvk3Rj9f7HrbWeqXyNMQ8bY2z19kn/Whu+xqEtg71J9ad9X/EYAAAAAIBV8/N/rSnNFzNeXuCYkw2Pk/41p6X3qDJkpUfSF40xH1alN0ePpLdK+tnqccclPRpw2yKlaRJTenkAAAAAACIuqF/Vl1pttNbaBVY0CYS19rAx5sclfVrSOkkfbnHYcUlvtNY2L+jskNGGnh7M5wEAAAAAiDrnxydYa//GGHOrKr0+3qjKErazkk5I+ktJv2et9XeW0Dbo6+tb+qA1GGW5WoSov79fDzzwgMIskgJ+I+dwATmHC8g5EC1BFT1+zBizf43HWWvtG9rZqLoXPi3pvdXbSp73FTWvQLPSc+9cy/Nr/L6oZscbenowvAUBMsbwxQGxR87hAnIOF5BzIFqCKHoYSTuqt8WO0SLHGc3PD4IWZmZmtG7dOt9ev3Ei02GGtyBA09PTOn78uK6//nr19lJwQzyRc7iAnMMF5ByIlqB6eiy31NnqOIody1AqtZw2pS2mCnMan/YsXMNEpghUqVTSpUuXfM05EDZyDheQc7iAnAPREkTRg6JFhxsdb57SZMcGenoAAAAAAKLN76IHg9liIDvmncR060BamWR3SK0BAAAAAGB5/Cx6POLjayNATfN5MLQFAAAAANABfCt6WGspegQonU779tqNK7cwiSmClslkdP311yuTyYTdFMA35BwuIOdwATkHoiWoiUzhs2Qy6dtrNw5vGRqkpweClUwmtX379rCbAfiKnMMF5BwuIOdAtHSF3QC0R7FYXPqgVWqcyHR4Iz09EKxisahz5875mnMgbOQcLiDncAE5B6KFokdMFAoFX17XWqvRcW9Pj2F6eiBg+Xxex48fVz6fD7spgG/IOVxAzuECcg5EC0UPLGpiuqipwpxnGxOZAgAAAAA6AUUPLKpxEtPuLqPt65mUCQAAAAAQfRQ9sKjGoS3b1mWU6CY2AAAAAIDo43+vMdHd3e3L62bHmMQU4evu7tb69et9yzkQBeQcLiDncAE5B6KFJWtjoqfHn2JE4/AWJjFFGHp7e7V///6wmwH4ipzDBeQcLiDnQLTQ0yMmrLW+vG52rGHlFiYxRQistSqXy77lHIgCcg4XkHO4gJwD0ULRIyZyuZwvr9vY02NokOEtCN7U1JS+9rWvaWpqKuymAL4h53ABOYcLyDkQLRQ9sCBrrc6M09MDAAAAANCZKHpgQRcmCyrMlT3bmNMDAAAAANApKHpgQY1DW1KJLm0dSIfUGgAAAABA2J4+PR52E1aEogcW1DiJ6dCGHnV1mZBaAwAAAAAIWibpXX65WOqsSXpZsjYmenvbP+xktKGnxw4mMUVI+vr6dO+99yqZTIbdFMA35BwuIOdwATlH3Dx8/ValE99tmvqgU9DTIya6utr/UbJcLaKiq6tL6XTal5wDUUHO4QJyDheQc8TNNZt69fl/f0j/4uZtSnV3Xq47r8VoKZ/Pt/01G+f0YBJThGVmZkYvvPCCZmZmlj4Y6FDkHC4g53ABOUcc3bh9nf7wJ+7QU7/6/drYlwq7OStC0SMm5ubm2v6aTUWPjQxvQTjm5uZ08eJFX3IORAU5hwvIOVxAzhFn63uSSiU6q4zQWa1FYOZKZZ2d8PYeGaKnBwAAAACgg1D0QEvnL+dVKntn5R1mIlMAAAAAQAeh6IGWGicx7U11d9zYLQAAAACA2yh6xEQq1d6CRKtJTI0xbT0HsFzpdFrXXXed0ul02E0BfEPO4QJyDheQcyBaEmE3AO3R7qLH6BiTmCI6UqmUrrnmmrCbAfiKnMMF5BwuIOdAtNDTIybaPTv06Lh3eAuTmCJMzIIOF5BzuICcwwXkHIgWih4xkc/nlz5oBRqHtwwxiSlCxHr3cAE5hwvIOVxAzoFooeiBlhonMh3eSE8PAAAAAEBnoeiBJoW5kl6Z9PYcGWZ4CwAAAACgw1D0QJMz4zOy1rttiIlMAQAAAAAdhqJHTHR1te+jbJzEdH1PUusyyba9PrBSXV1d6u3tbWvOgagh53ABOYcLyDkQLSxZGxO9ve0bftI4iSnL1SJsfX19uuuuu8JuBuArcg4XkHO4gJwD0UL5EU2aJjFlPg8AAAAAQAei6BETuVyuba/V3NODogfCNTU1pa9//euampoKuymAb8g5XEDO4QJyDkQLRY+YsI0zj65B45weQ4MMb0G4rLUqlUptzTkQNeQcLiDncAE5B6KFogeajI419PRgeAsAAAAAoANR9IBHrjCn13Kznm1MZAoAAAAA6EQUPeDROLRFkobo6QEAAAAA6EAUPWKip6c9vTGyDUNbtgyklUl2t+W1gdXq7e3VgQMH2ro0MxA15BwuIOdwATkHoiURdgPQHt3d7SlMjDas3MIkpoiC7u5uDQwMhN0MwFfkHC4g53ABOQeihZ4eMZHP59vyOtmG4S1MYoooyOfzevHFF9uWcyCKyDlcQM7hAnIORAtFj5iYm5try+s0Dm9hElNEQbFY1NmzZ1UsFsNuCuAbcg4XkHO4gJwD0ULRAx709AAAAAAAxAVFD3g0z+lB0QMAAAAA0JkoeuCKS9NFTea9w2QY3gIAAAAA6FQUPWIimUyu+TWyDb08uox09QaKHghfKpXSjh07lEqlwm4K4BtyDheQc7iAnAPRwpK1MZFOp9f8Go2TmG5f36NkN3UxhC+dTmv37t1hNwPwFTmHC8g5XEDOgWjhf7QxUSqV1vwajT09hgbp5YFoKJVKunTpUltyDkQVOYcLyDlcQM6BaKHoERMzMzNLH7SE0YaVW5jEFFExPT2tI0eOaHp6eumDgQ5FzuECcg4XkHMgWih64IrG4S1MYgoAAAAA6GQUPXBFtqGnxzA9PQAAAAAAHYyiByRJ1lqNjjf29KDoAQAAAADoXBQ9YsIYs6bnX5yaVb5Y9mxjIlNEhTFGyWRyzTkHooycwwXkHC4g50C0sGRtTPT19a3p+Y0rtyS7ja5al1nTawLt0t/fr/vuuy/sZgC+IudwATmHC8g5EC309ICk5klMd2zoUXcX1WkAAAAAQOei6BETa10Sq3G5WubzQJTkcjl9+9vfVi6XC7spgG/IOVxAzuECcg5EC0WPmCiXy0sftIjGnh5DrNyCCCmXy8rn82vOORBl5BwuIOdwATkHooWiByQ19/RgElMAAAAAQKej6AFJzROZMrwFAAAAANDpKHpApbLV2YmGOT3o6QEAAAAA6HAUPWIik1n98rLnL+dVLFnPNnp6IEp6enp0yy23qKeHYhzii5zDBeQcLiDnQLQkwm4A2iORWP1H2TiJaU+yW5v6UmttEtA2iURCGzduDLsZgK/IOVxAzuECcg5ECz09YqJQKKz6ua0mMTXGrLVJQNsUCgWdOnVqTTkHoo6cwwXkHC4g50C0UPSIiWKxuOrnNvb0YGgLomZ2dlanT5/W7Oxs2E0BfEPO4QJyDheQcyBaKHqgeeUWJjEFAAAAAMQARQ9odKxh5RZ6egAAAAAAYoCiBzTa0NNjiJ4eAAAAAIAYoOgRE6tdvWV2rqxzl/OebUOD9PRAtCQSCW3dunVNqxQBUUfO4QJyDheQcyBa+JsYE5lMZlXPOzsxI2u92xjegqjp6enRjTfeGHYzAF+Rc7iAnMMF5ByIFnp6xES5XF7V8xonMV2XSWh9T7IdTQLaplwua2ZmZtU5BzoBOYcLyDlcQM6BaKHoERPT09NLH9RClklM0QFyuZyefPJJ5XK5sJsC+IacwwXkHC4g50C0UPRwHJOYAgAAAADiiqKH47LjDT09mMQUAAAAABATFD0clx3z9vRgeAsAAAAAIC4oejiucXjL8EaGtwAAAAAA4oEla2Oiv79/xc+ZmS3p4tSsZ9sQw1sQQQMDA3rooYfCbgbgK3IOF5BzuICcA9FCTw+HNfbykJjIFAAAAAAQHxQ9YmJmZmbpgxpkG4oem/tT6k3R+QfRMz09rWeeeWbVSzMDnYCcwwXkHC4g50C0UPSIiVKptOLnZMe8hRKGtiCqSqWSJicnV5VzoFOQc7iAnMMF5ByIFooeDmPlFgAAAABAnFH0cNjoeGNPD+bzAAAAAADEB0UPhzXO6THM8BYAAAAAQIxQ9IiJdDq94uc0D2+hpweiKZPJaO/evcpkMmE3BfANOYcLyDlcQM6BaGGpjphIJpMrOv7STFGX83OebfT0QFQlk0ldddVVYTcD8BU5hwvIOVxAzoFooadHTMzOzq7o+NGGoS3GSNs3UI1GNM3OzurMmTMrzjnQScg5XEDO4QJyDkQLRY+YWOlFtXG52m3rMkonutvZJKBtCoWCTpw4oUKhEHZTAN+Qc7iAnMMF5ByIFooekowx1xpjHjXGjBhjcsaYMWPMU8aYXzTGrGnMhzGm1xjzI8aYP6y+5rgxpmiMec0Y84Qx5kPGmG3t+rMsV2NPD4a2AAAAAADixvk5PYwxb5L0aUnr6jb3SrqzenuHMeaN1toTq3jtWyV9Q1J/i90bJd1bvf0HY8zPWms/t9JzrFbjJKZDTGIKAAAAAIgZp3t6GGNul/Q5VQoeU5J+RdJ9kt4g6bHqYddL+oIxZmAVp1in+YLHNyS9X9IPSDog6Z9J+s+SytXj/twY8y9W9ydZuey4d3gLPT0AAAAAAHHjek+Pj0vqkTQn6QettU/U7fuSMeZFSR9VpfDxPkkfWuHrlyX9haRHrLXHWuz/ojHm7yT9laRuSb9rjNljrbUrPI+6u1c2H0fj8JahQXp6ILq6u7s1ODi44pwDnYScwwXkHC4g50C0ONvTwxhzt6QHqg//uKHgUfOopO9W77/HGLOidWGttd+01v74AgWP2jF/Len/rT58naTbV3KOmp6e5RctrLVNE5kOb6SnB6Krt7dXt956q3p7ySnii5zDBeQcLiDnQLQ4W/SQ9Oa6+3/S6gBrbVnSp6oPN0h6vU9t+XLd/det5gVW0jnktdysZoolzzaKHogya63m5uZWlHOg05BzuICcwwXkHIgWl4se91d/5iQ9vchxj9fdP+RTW9J190sLHrWIXC637GMbJzFNdBltW5dZzWmBQExNTekb3/iGpqamwm4K4BtyDheQc7iAnAPR4vKcHjdWf56w1s4tctxIi+e020N197+74FGLmJqa0uXLlxc9Zt26ygI1ow2TmF69oUfdXWY1pwUAAAAAILKcLHoYYzKSNlcfji52rLV23BiTk9QnadiHttwm6Y3Vh0ettasqenzmM59Z8pj3vve9kqQT58c927evS2lycvLK40wmo2QyqdnZWRUKBc+x3d3d6u3tlbW2ZfW6r69PXV1dmpmZ0dyct5aUTqeVSqVULBaVz+c9+7q6utTX1ydJnrbU9Pb2qru7W/l8XsVi0bMvlUopnU5rbm5OMzPego4xRv39lQV0pqammroZ9vT0KJFIqFAoaHZ21rMvmUwqk8moVCppetrbO0aSBgYqC/rkcjmVy2XPvsXew0QioZ6eHpXL5ZY9dPr7+2WM0fT0tEolb8efxd7D2mcjtX4PF/tsFnsP6z+bVu9h7bNZ6XtY/9m0eg9rn83s7OyV59Z+ruU9rH02i72Ha8n3Wt7DxfK9lvew1Wez1HtYy/di7yHXiPZeI2qvUSgUNDAwwDViBdeIdl5nuUZU+HWNqL2n1toV59D1a0QN3yMqon6NkNTUZq4RFXyPqOjka0RlFojO4WTRQ1L98rPL6XdWK3r0L3XgShhj0pL+qyort0iVJXN988wzz0iSnj3hDXBmburKPknau3evrrrqKl24cEEnTpzwHDs4OKhbb71VpVLJ85yagwcPKpVK6aWXXtJrr73m2bdr1y4NDw9rYmJCx45553bt7+/XHXfcIUk6fPhw0wXjzjvvVF9fn06fPq3z58979g0PD2vXrl2amprSs88+69mXSqV08OBBSdLRo0ebLja33XabNmzYoDNnziibzXr2bdu2TTfccIPy+XzTn9UYowcffFCSNDIy0nRRvummm7Rlyxa98sorOnnypGffpk2bdPPNN2tubq7le3jo0CElEgmdOHFC4+PeAtXu3bu1Y8cOjY2NaWRkxLNvYGBABw4ckKSWr3v33Xerp6dHp06d0quvvurZd+2112rnzp26fPmyjh496tmXyWR0zz33SJKee+65pn8I9u/fr/Xr1yubzerMmTOefVdffbX27Nmj6enppjZ1d3fr/vsro8yOHTvWdLHft2+fNm/erPPnz+vll1+WpCt/5s2bN2vfvn0qFost/6wPPPCAjDE6fvy4Ll265Nl3/fXXa/v27bp48aKOHz/u2bd+/Xrt379f1tqWr3vvvfcqnU7r5MmTunjxomffddddp2uuuUYTExN64YUXPPt6e3t11113SZKOHDnS9A/MgQMHNDAwoGw2q7Nnz3r27dixQ7t379bU1JSOHDni2ZdMJnXfffdJkp5//vmmf5xuueUWbdy4UefOndPp06c9+7Zu3aobb7xRhUKh5Z/1oYcqHdBGRkaavhxwjajw6xoxOjqqzZs3c41YxTWihmtERRSvEbUv8eVyuenvo8Q1oobvERWdfI2Q1PQec42o4HtERSdfIxr/HkedcXGCHWPMsKR/qj78M2vtTy1x/D+p0svjJWvt7ja24zFJ76g+/FNr7c+s5PmPPPLIkKSsJL3lLW/R5s2br+xLJBLKZDIql8tX/hGofdH42f/rOT3x8sSVY//Xh3fqnYeuufKY6mtFJ1df4/YbmvHxcY2MjGjv3r3q7e3lt7grfA/5DU1nXCOmp6c1MjJy5Ys614ho/xaXa8Tqe3ocO3ZMt99+u4xpHlrLNaKC7xEVnXqNuHz5sg4fPnzle8ty3kOuERV8j5gX5WvE6z/8BT1c/E5t1/AHP/jBRUdPhM3VoscWSbUS9eestW9d4vhXJG2V9Ly19pY2teH9kj5cffiUpNdba5c/G6m8RY/3vOc92rBhw7Ke9/BvfVmnXpv/i/Xxt+7Xv9q/YyWnBgJVLpc1NzenRCKhri6X519GnJFzuICcwwXkHHH3fR/5Oz00+2TtYeSLHq4Ob6kv7y1nyEpf9WdbpmA2xrxL8wWPEUk/tNKCR6PlXlDLZaszE94K5dAgy9Ui2rq6upRKpcJuBuArcg4XkHO4gJwD0eJk6dFam5dUGwQ2tNixxphBzZLoQOMAACAASURBVBc9sosduxzGmH8j6Q+qD09L+gFr7cVFnrIsjd2PFvLKZF7Fkrd3z/DGnrWeHvDVzMyMnn/++aYuhUCckHO4gJzDBeQciBYnix5VtdltdhtjFuvxsrfu/qpWVqkxxvxLSZ9S5X0/J+kN1tq2dAVqHNO2kOyY9+KbSXZpS3+6HU0AfDM3N6fXXntt2TkHOhE5hwvIOVxAzoFocbno8fXqzz5Jdyxy3EN197+x2pMZY94g6S9UGVL0mio9PF5a7eutVnbMO0nO0GBvy4nEAAAAAADodC4XPT5fd/9trQ4wxnRJqq3sMiHpy6s5kTHmPkl/LSkt6ZKkf2atfWHxZ/ljdNzb02N4kKEtAAAAAIB4crboYa19UtLXqg/fbow52OKw90m6sXr/49Zaz/pFxpiHjTG2evtkq/MYY/ZL+oIqPUpykt5orX26HX+G1ciON/f0AAAAAAAgjlxdvaXmPaoMWemR9EVjzIdV6c3RI+mtkn62etxxSY+u9MWNMa+T9A+SamvJ/qqkS8aYmxd52qvW2lcX2d/ScmeIbhzewiSm6ATpdFq7du1SOs38M4gvcg4XkHO4gJwD0eJ00cNae9gY8+OSPi1pneaXka13XJXeGZMt9i3lAUlb6x5/bBnPeUTSh1Z6ouUWPZqHt9DTA9GXSqU0PDwcdjMAX5FzuICcwwXkHIgWZ4e31Fhr/0bSraoUJI5LmlZl/o7vSPplSbdba0+E18LlKRaLSx9TKuvcpYaix0aKHoi+YrGoCxcuLCvnQKci53ABOYcLyDkQLc4XPSTJWnvaWvtea+0N1to+a+2gtfYua+1HrbXTizzvK9ZaU739TIv9n6zbv9zbh1bzZygUCksec24ir7L1bhtiIlN0gHw+r2PHjimfz4fdFMA35BwuIOdwATkHooWih0MaJzEdSCe0vicZUmsAAAAAAPAXRQ+HNE5iOrSxV8aYkFoDAAAAAIC/KHo4pLGnxzBDWwAAAAAAMUbRIya6upb+KJtWbmESU3SIrq4u9ff3LyvnQKci53ABOYcLyDkQLU4vWRsnvb1LFzCahrfQ0wMdoq+vT3fccUfYzQB8Rc7hAnIOF5BzIFooPzok29jTY5CeHgAAAACA+KLoERNTU1OL7s8XS7ow6V3WluEt6BSTk5P66le/qsnJybCbAviGnMMF5BwuIOdAtFD0cMRowySmEsNb0FmstWE3AfAdOYcLyDlcQM6B6KDo4YjGoS0b+1LqSzOlCwAAAAAgvih6OGJ0jOVqAQAAAABuoejhiMaeHkPM5wEAAAAAiDnGN8RET8/iPTcal6tl5RZ0kt7eXt15553KZDJhNwXwDTmHC8g5XEDOgWih6BET3d3di+4fbVyudiPDW9A5uru71dfXF3YzAF+Rc7iAnMMF5ByIFoa3xEQ+n190f7Zh9ZYhenqgg+TzeX3ve99bMudAJyPncAE5hwvIORAtFD1iYm5ubsF9k/miJqaLnm1MZIpOUiwWdf78eRWLxaUPBjoUOYcLyDlcQM6BaKHo4YDsmHdoizHSDooeAAAAAICYo+jhgMahLVcNZJROLD4HCAAAAAAAnY6ihwMaJzEdopcHAAAAAMABFD1iIplMLrivabnajUxiis6SSqU0PDysVCoVdlMA35BzuICcwwXkHIgWlqyNiXQ6veC+0YbhLUxiik6TTqe1a9eusJsB+IqcwwXkHC4g50C00NMjJhZbvaVxItMhenqgw8zNzWliYmLRnAOdjpzDBeQcLiDnQLRQ9IiJhdYBt9a26OlB0QOdZWZmRs8++6xmZmaWPhjoUOQcLiDncAE5B6KFokfMjU8XlZstebYxkSkAAAAAwAUUPWKucRLT7i6j7eszIbUGAAAAAIDgUPSIuWzD0JarN2SU6OZjBwAAAADEH//7jQljTMvtjZOYMp8HOpExRqlUasGcA3FAzuECcg4XkHMgWliyNib6+vpabmcSU8RBf3+/Dh48GHYzAF+Rc7iAnMMF5ByIFnp6xFx2vGG5WiYxBQAAAAA4gqJHTORyuZbbRxsmMh3eSE8PdJ6pqSk98cQTmpqaCrspgG/IOVxAzuECcg5EC0WPmLDWNm0rl61GG3p6DG+kpwc6j7VWs7OzLXMOxAU5hwvIOVxAzoFooegRYxemCpotlT3bmNMDAAAAAOAKih4xlm0Y2pJKdGlzfzqk1gAAAAAAECyKHjGWbVi5ZWiwR11dLJ0FAAAAAHADRY+YyGQyTduyYw3zeTC0BR2qp6dHt912m3p6mJMG8UXO4QJyDheQcyBaEmE3AO2RSDR/lI3DW5jEFJ0qkUhow4YNYTcD8BU5hwvIOVxAzoFooadHTBQKhaZtTSu30NMDHapQKOjkyZMtcw7EBTmHC8g5XEDOgWih6BETxWKxaVvznB4UPdCZZmdnlc1mNTs7G3ZTAN+Qc7iAnMMF5ByIFooeMTVXKuvcpbxnG8NbAAAAAAAuoegRU+cu5VUqW882hrcAAAAAAFxC0SOmGoe29KcT2tCbDKk1AAAAAAAEj6JHTDSu3jLasFzt0GCPjDFBNglom2QyqW3btimZpHCH+CLncAE5hwvIORAtLFkbE5lMxvOYSUwRJ5lMRjfccEPYzQB8Rc7hAnIOF5BzIFro6RETpVLJ8zg75i16MIkpOlmpVFIul2vKORAn5BwuIOdwATlH3P3kwWvDbsKKUPSIiZkZ73CW7Lj3MZOYopNNT0/rO9/5jqanp5c+GOhQ5BwuIOdwATlH3P3ogaGwm7AiFD1ianS8sacHRQ8AAAAAgFsoesRQvljSK5cLnm1DgwxvAQAAAAC4haJHDJ2ZmGnaRk8PAAAAAIBrKHrEUOMkpoO9SfWnWagHnY0ll+ECcg4XkHO4gJwD0cH/hGOiv7//yv3RxklM6eWBDjcwMKAHH3ww7GYAviLncAE5hwvIORAt9PSIoWzDJKbM5wEAAAAAcBFFj5ioXxJrdIzlahEvuVxOTz/9tHK5XNhNAXxDzuECcg4XkHMgWih6xES5XL5yv6mnB8Nb0OHK5bKmpqY8OQfihpzDBeQcLiDnQLRQ9IihxolMhxneAgAAAABwEEWPmJkqzGl8uujZxkSmAAAAAAAXUfSImdGGoS2StGMDPT0AAAAAAO6h6BET6XRakpRtmMR060BamWR3GE0C2iaTyeimm25SJpMJuymAb8g5XEDO4QJyDkRLIuwGoD2SyaSkFvN5MLQFMZBMJrVly5awmwH4ipzDBeQcLiDnQLTQ0yMmZmdnJUmj443L1TK0BZ1vdnZW2Wz2Ss6BOCLncAE5hwvIORAtFD1ionZRbVqudpCeHuh8hUJBJ0+eVKFQCLspgG/IOVxAzuECcg5EC0WPmGke3kJPDwAAAACAmyh6xIi1tsXwFnp6AAAAAADcRNEjRiami5oqzHm2MZEpAAAAAMBVFD1iIpFINPXy6O4y2r6epbLQ+RKJhDZt2qREggWnEF/kHC4g53ABOQeihb+JMZHJZJR9JefZtm1dRolu6lrofD09Pbr55pvDbgbgK3IOF5BzuICcA9HC/4hjolwuM4kpYqtcLmt2dlblcjnspgC+IedwATmHC8g5EC0UPWJienq6ablaJjFFXORyOT3xxBPK5XJLHwx0KHIOF5BzuICcA9FC0SNGmlZuYRJTAAAAAIDDKHrECMNbAAAAAACYR9EjJqy1TT09hhjeAgAAAABwGEWPmBjLFVWY806WxJweAAAAAACXsWRtTEwUvfWrVKJLWwfSIbUGaK/+/n4dOnRI3d3dYTcF8A05hwvIOVxAzoFooegRE+cv5z2Phzb0qKvLhNQaoL2MMUokuFwh3sg5XEDO4QJyDkQLw1ti4vSFy57HOwaZxBTxMT09reeee07T09NLHwx0KHIOF5BzuICcA9FC0SMmzk14e3qwXC3ipFQqaXx8XKVSKeymAL4h53ABOYcLyDkQLRQ9YuL8ZMHzmElMAQAAAACuo+gRE+cvNxQ9NjK8BQAAAADgNooeMXFhctbzmJ4eAAAAAADXUfSIibmy9TweYiJTxEg6ndbu3buVTrMMM+KLnMMF5BwuIOdAtLCWUgz1/v/t3Xm0JHWV4PHvrSoKaqEQBFwAwWYR6RZlHZBFEGwbEKGxe8RhVKQQpWc86CgiuIC0OyDQKCOCisg0zRwU0aFnBhQtFaEFpFsWyxIFZBlFWYuSKqqsO39EvH5RWZn5Mt/LjHyV+f2cEydj+cXvxqtzSTJv/uIXs2eyybzZg74MqWdmz57NFltsMejLkPrKPNcoMM81CsxzaXpxpMcQ2mrjuUTEoC9D6pmVK1fyu9/9jpUrVw76UqS+Mc81CsxzjQLzXJpeLHoMIScx1bBZvnw5ixcvZvny5RM3ltZR5rlGgXmuUWCeS9OLRY8htKWTmEqSJEmSZNFjGDmJqSRJkiRJFj2G0labONJDkiRJkiSLHkNoK29v0ZCZOXMmG264ITNnzhz0pUh9Y55rFJjnGgXmuTS9+MjaIbSlE5lqyMydO5ddd9110Jch9ZV5rlFgnmsUmOfS9OJIjyGz0Zz1WLDBeoO+DEmSJEmSBs6ix5DxcbUaRkuXLmXRokUsXbp00Jci9Y15rlFgnmsUmOfS9GLRY8g4n4ckSZIkSQXn9Fi3Pb9xh09u0bB56qmnOPfccwHYfvvt2XDDDQd8RVLvmecaBea5RoF5rlHQMIrp+cCDA7qUjjjSA4iIrSPinIhYHBHLIuKxiLglIk6OiJ5VESLikIi4OiIejIgV5evVEXFIr2JsubG3t0iSJEmSBI70ICIOBy4HFlR2zwV2L5fjI+KwzLxnCjFmAF8EFjYc2qJcjoyIS4B3ZObqycYBb2+RJEmSJGnMSI/0iIhdgCspCh5PAx8EXgkcBFxcNtsBuDYipjI27eOMFzxuB94E7Fm+3l7uPx742BRiAE5kquE2d65FPQ0/81yjwDzXKDDPpelh1Ed6nA/MAVYBf5mZN1WO3RARvwQ+Q1H4eC9wRrcBImIH4H3l5q3A/pn5TLl9S0R8C1hEMark5Ij48lRGlWzpSA8NsRkzRrpOqxFhnmsUmOcaBea5ND2M7H+JEbEnsF+5+aWGgseYc4Cfl+snRcR6kwj1bsaLS++qFDwAyMw/Au8qN2cB75lEDAA223B9Nlhv5mRPl6a95cuXD/oSpL4zzzUKzHONAvNcmh5GtugBHFlZ/0qzBuX8GpeVm88BDuwmQEQEcES5uTgzb24R52bgF+XmEeV5XXMSUw27VatWDfoSpL4zzzUKzHONAvNcmh5Gueixb/m6DLitTbtFlfV9uozxYuCFTfppF2cLYJsu4wBOYipJkiRJUtUoz+nx0vL1nsxsV4Zd3OScTu3Uop9O4tzbQf//fi/LHJ5ls/We5aGHHmrZ2OeEa11UfQ74008/zVNPPTXAq5H6wzzXKDDPNQrMc42CZcuWVTen/fwKI1n0iIgNgE3LzQfbtc3MxyNiGTAP2KrLUFtW1tvGAR6orHca57ljK6+fs5jVdy3mkrs6vTRp3XPFFVcM+hKkvjPPNQrMc40C81wj4rkTNxmsUb29pTrk4ekO2o+Vsub3MU61XNZpnEe6uxxJkiRJknpm2n8nHcmRHsAGlfVnO2i/onztdqbQbuKsqKx3GucOYA9gc+BR4E8TtP9th/1KkiRJktTMTGCzcv2OQV5IJ0a16FF9ftTsDtqvX74+07bV1OKsX1nvKM7pp5++Ari1y2uSJEmSJGkq7h/0BXRqVG9vWVpZ7+RWknnlaye3wkw2zrzKerdxJEmSJElSg5EsemTmcorbQWDNyUbXEhEbM16QeKBd2yaqk5e2jcOak5d2G0eSJEmSJDUYyaJH6e7ydbuIaHebz46V9Z9PMkZjP72OI0mSJEmSGoxy0eNH5es8YLc27V5VWb+xyxj3Ag836aeZ/cvXh4D7uowjSZIkSZIajHLR45uV9bc1axARM4C3lJtPAN/rJkBmJnBNubljROzVIs5ejI/0uKY8T5IkSZIkTcHIFj0y8yfAD8vNhRGxd5Nm7wVeWq6fn5krqwcj4oCIyHK5tEWo8xh/lOwFEbHG42jL7QvKzVVle0mSJEmSNEUjW/QonUTxeNhZwHURcWpE7BURB0bERcBnynZLgHMmEyAzlwBnlZu7AzdGxBsjYveIeCPFLTO7l8fPysxfTvaPkSRJkiRJ42LU76SIiMOBy4EFLZosAQ7LzHuanHsA47e8fDUzj20RYwZwMXBcm0v5EnBCZq7u7MolSZIkSVI7oz7Sg8z8NrAzcC5FgeOPFPN33AqcAuzSrODRZYzVmbkQOIxijo+HgWfL12uAY4EngbsjYllEPBYRt0TEyRExdyqxqyLikIi4OiIejIgV5evVEXFIr2JIrUTE1hFxTkQs7nWeR8TciDgqIv572efjEbEyIh6NiJsi4oyIeH6v/haplX7meZuYcyPi15XbLe/rRxxpTJ15HhEHR8SlEXFPGevJiFgSEVdFxIkRMb+X8aQxdeR5RGwTEZ+OiNsi4onys8tjEfHjiPhIRGzeizhSVURsHhGvi4gzI+J/R8QfOpiyYaox3xQR10XEbyNieUTcHxGXt5hiovfxR32kx6BNZaRJFzFmAF8EFrZpdgnwDkeaqB/6mecRsTPFbWITffB9imI01ZXdxpA6Ucf7eYu4Z1PMQTXm/szcppcxpDF15XlEbAx8BThigqa7ZOa/TiWW1Kimz+dvBi4C5rRp9hhwdGZeP9k4UqOIaFcAaHn3wiRjzQGuAg5t0WQ1cGZmfrRXMZsZ+ZEegxQRuwBXUryhPg18EHglcBDF7TAAOwDXRsSGUwj1ccYLHrcDbwL2LF9vL/cfD3xsCjGkpmrI8wWMFzxuBE4FXgPsCryW4gPF6rLd/3Bkk/qhxvfzZnHfDSwHlvaqX6mZuvI8IjYCrme84HE1cAywF7AHcBRwPvDgZGNIrdSR5xGxD3ApRcFjNUWB70iKz+d/A3y7bLoJcE1E/Nlk4kgd+A1wXR/7/zLjBY/vMZ7nC4FfUdQjzoiIE/p4DZCZLgNagB8ACawE9m5y/OTyeAJnTDLGDmX/CdwCzGk4PrfcP3Yd2w3638VluJZ+5znFB5ErgZ3atDmC4kNFAvdQjnJzcenVUsf7eZM+Z1LcipnAh4H7yvX7Bv3v4TKcS115DlxW9rEceH2bdgHMGvS/i8twLTV9Pv9flT7+rkWbcyptPjfofxeX4VmAjwKvA55Xbm9TybVLexjn1ZV+vwXMbDi+KXB/efxxYON+/c3e3jIgEbEn8C/l5kWZ+c4mbWYAd1I8NvcJYPNseGxuB3EuBE4sN/fOzJubtNkLuKncvDAz/0s3MaRW6srzDq/lKuAN5eZumfnTXsfQaBpUnkfEf6P4UPwLirmplgBb4+0t6oMaP7fsC/yw3Dw5M8+e/FVL3akxzx8DNgYezcxNW7TZqOwf4KeZuVs3MaRORcQ2wL3lZs9ub4mIfwYOAVYBL87MtUbnRcTRwBXl5vsz86zGNr3g7S2Dc2Rl/SvNGmQxv8Zl5eZzgAO7CRARwfjQ0MXNCh5lnJspPjQDHFGeJ/VC3/O8C9+rrG/bpxgaTbXneURsDZxZbr4zM5+dSn9SB+rK8/9avj4JfG4S50tTUVeezy5f723VIDOfBP7Q0F5aJ5S3fh1Ubn6nWcGj9A2KefcA/rpf12PRY3D2LV+XAbe1abeosr5PlzFeDLywST/t4mxBMcRJ6oU68rxT61fW/9SnGBpNg8jzC4F5wNcy8/tT7EvqRN/zPCJmM/5jzfWZubzcPzMitiqfdLFBN31KXarr/Xzsx8YXt2oQEQsohv9X20vrij0YL9a1/B5a/mgz9sP8HhGxXj8uxqLH4Ly0fL0nM1e1abe4yTmd2qlFP72OI7VSR5536lWV9Z/3KYZGU615Xg4FPZTi/tf3TtBc6pU68vzlwFhR446IWBAR51H82v0bil/Fn4yI6yPigC77ljpR1/v5F8rX50bEWrfQlD7cpL20rpjM99BZwPb9uBiLHgNQ/koxVrltO/N4Zj5OUW0G2KrLUFtW1iea4fyBynq3caS11JjnnVzLy4HDys07MtOih3qi7jwvH+N5Xrn5gcz8/WT6kbpRY55XPyTPoJio9ySKWwjGzAYOBm6IiFO67F9qqeb38y8zfovM5yPi4og4PCJ2j4ijIuJq4H3l8Y9n5ncmEUMapGn1PdSix2BUH2/1dAftx95U57dtNbU4yyrr3caRmqkrz9uKiPWBSyiedAHFo+ekXqk7z88Cnkcx+fTFE7SVeqWuPN+ksn4KxS9+/4fi8YYbAJtTTM7+JMWTWz4VEUc0diJNUm3v55n5p8x8K/C3wL8Bx1M83eIW4OsUc4t8D3hNZn6o2/6laWBafQ+16DEY1ftRO5l8bkX5OqePcVZU1ruNIzVTV55P5HPA7uX6VzPz2z3uX6OttjyPiP2B4yhmQX9n+vg11aeuPJ/XEPN64HWZeUtmrsjM32fmFygetbi6bPdJJ2BXj9T6uSUiXgq8BXhZiyZ7AwsjYovJ9C8N2LT6HmrRYzCWV9Y7mY15bALGZ/oYpzrJY7dxpGbqyvOWIuJUil9PoPj1xMcxq9dqyfNyxNIXKX7dPj8zf9bN+dIUDeJzC8ApmbnWxNOZ+SOKGf+hmE+h1ZdGqRu1fW6JiP0oRuwdDjwEvBl4fhl3K4rPK38EjgZ+EhF/3m0MacCm1fdQix6DsbSy3skQnrFfPjoZajfZONVfV7qNIzVTV543FRHvAD5Rbi4GDs3MZW1OkSajrjz/IPASivteT+/yXGmqBvG55feZeXubtv+3sr5Hl3GkZmrJ87KIfQWwEfBbYK/MvDwzf5eZKzPzwcy8ENif4ovjC4GvdhNDmgam1ffQWf3oVO1l5vKIeBR4LmtO8rKWctK6sUR4oF3bJqqTxrSNw5qTxnQbR1pLjXnerL83UTzSE+B+inti/9DmFGlSaszzsQkbvwMc3mI0/1jf88onvAA8kpk3dBlLWkONeV5t383Ed5t1GUdaS415/lfA2C0rF2Tmb1tcz10RcTnFiNXdIuLlmflvXcaSBqXxe+itbdr2/XuoRY/BuRvYD9guIma1eSzWjpX1bp84cXeLfnodR2qljjxfQ0S8nmJG9BnA/wMOysyJPjxLU1FHno8NDX1bubSzKcWviACLAIse6oU68vyuyvrMlq3WPt7u0aJSN+rI8+ojbn86QdvbGL9Nd0eKSU+ldcFkvoeuAn7Zj4vx9pbB+VH5Og/YrU27V1XWb+wyxr3Aw036aWb/8vUh4L4u40it1JHn/y4iDgL+J0VB91GKER6/mmx/UodqzXNpQPqe55l5P/CbcnObCSYo3bay/lA3caQ26ng/rxZSJvoBer0W50nT3S2MT2Da8ntoRMwG9ho7JzNX9uNiLHoMzjcr601/tYuIGRSzOgM8QfHoqo6VM/tfU27uGBF7NWtX7h+rsF3jEwHUQ33P80o/r6TI9/UpHmf42sy8q/1ZUk/U8X4eEy0Ut3IB3F/Zf0CXf4vUSl3v518vXxcAB7Vpd1Rl/UctW0ndqSPP762s7zdB2+qXxXtbtpKmmcxcCny33Dw4IlrdMnYUxfs9wNX9uh6LHgOSmT8BflhuLoyIvZs0ey/jQ+DOb6x8RcQBEZHlcmmLUOcBYzOfXxARazwGqNy+oNxcVbaXeqKuPI+IVwDXUvwysww4LDNv68XfIE2kxvdzaWBq/twyNuv/ZyNiQWODiPjPwAHl5rWZ6Vxk6oma8vy7FE9mATgxIpo+fSgiDgH+utx8CPjXzv8Sqb8i4thKnp/RotnZ5ess4PMRscZtixGxKfDpcvMJ4JK+XCzO6TFoJ1EMiZsDXBcRn6CoFs+heETVCWW7JcA5kwmQmUsi4izgA8DuwI0R8WngVxRDQ08Bdimbn5WZfbmPSiOtr3keEdtSzOL/nHLXh4AnI+Iv2pz2SGY+0m0sqY2+v59L00Adn1t+ExEfAT5D8Sjan5SfW35G8WvgUcCJZfOngPdM7k+RWuprnmfmExHxKeBMYEPgxxFxAXA98DjwPOAI4O2M/0D9gcxcPem/SKqIiH2B7Sq7Nq2sbxcRx1bbZ+alk4mTmTdExD9R/HfzeuD6iDiPYvqFl1E8me5FZfNTMvPxycTphEWPAcrM2yPijcDlFP8j/0STZksofrVe2uRYpz4IbA4cR1Hg+Kcmbb5E8WVR6qka8nw/ivwec24H53wUOGMSsaSmanw/lwamrjzPzLMiYhOKH2ZeAny5SbNHgCP9sUa9VlOefwzYhKLAMh84tVwarQROy8zLJxlHauZ44K0tju1TLlWXTiHWcRT/HR0KHFguVauBv8/ML04hxoS8vWXAMvPbwM4UX9SWUAx3e4LisT6nALtk5j1TjLE6MxcCh1HMefAwxcQyD5fbh2bm8VaQ1S915Lk0aOa5RkFdeZ6Zp1J88P4axQTrKyjma7oF+DCwQ2beNNU4UjP9zvMsvAfYA/gCcCewlOKW9CcpntryWeAvMvPslh1J01xmPpOZhwHHUIxmeoTie+gDwD8C+2bmGf2+jnDOSkmSJEmSNIwc6SFJkiRJkoaSRQ9JkiRJkjSULHpIkiRJkqShZNFDkiRJkiQNJYsekiRJkiRpKFn0kCRJkiRJQ8mihyRJkiRJGkoWPSRJkiRJ0lCy6CFJkiRJkoaSRQ9JkiRJkjSULHpIkiRJkqShZNFDkiRJkiQNJYsekiRJkiRpKFn0kCRJkiRJQ8mihyRJkiRJGkoWPSRJkiRJ0lCy6CFJkiRJkoaSRQ9JkqQaRcQ2EZENy/ebtDujSbtj679iSZLWXRY9JElST7T4kl5dVkfE0oi4PyKui4jTImLrQV+3JEkaXhY9JElSXQKYD7wIeA3wceAXEXHyQK9KkiQNLYsekiRpkNYHPhMRbxn0hUiSpOEza9AXIEmShtpDwFXl+sbA7sBOzL9aYwAABgZJREFUTdqdDlxW10VJkqTRYNFDkiT10z2Z+e6xjYgI4PPAiQ3t/iwits7M+2u9OkmSNNQsekiSpNpkZkbE2axd9AB4AdC06BER84Fjgb8EXgE8tzz0CHAzcCVwTWbmRNcQERsCb6aYV+QVwKbAesDvgAeARcC1mfnjhvO2BfanGK3yCmAzYBNgI2A58BhwB/Ad4GuZ+ehE1yJJkvrLoockSarbwy32P9FsZ0QcDVxIcXtMo23K5Wjg5oj428x8sFXgiHgbcC5FoaLRi8plH+CYst+qTwNvaNH1fMYnaT0MOD0ijs/Mr7e6FkmS1H9OZCpJkuq2ZZN9K4H7GndGxLuBK2he8Gi0F0Xh4wXNDkbE3wNfpnnBo9eeA1wREXvXEEuSJLXgSA9JklSbiJgBvL/Jocszc3lD2z2Bc5q0vRO4leKWlAOALSrHtqCYEPU1DX0dDnyoSV9/Ar4P/BKYDbwc2HWCP+M+4B7g0XIJiltz9qG45WXMehSP5X31BP1JkqQ+seghSZL6abuIOK9c3xjYA3hpQ5tfAx9pcu4ZrD0q9V2Z+bmxjYiYA1wNvLbS5uCI2D8zf1DZ98km/S8BXp+Zv6jujIjtgROatP8H4JTM/FWTY0TEPOB6oDq644CI2DgzH292jiRJ6i+LHpIkqZ+2AE5qcWw18A3gpMxcY56PiFhAw2gN4CfVggdAZj4TEWeyZtED4G+AH5R97Qj8eZPYRzUWPMo+fwmc3GT/WH/zKUZ17Egxoeo8YGbZbGbDaUEx6en3GvuTJEn9Z9FDkiQNyp3APzQWPEq7sfbnlD0jYsKns5Sqoy3+Q5PjP8rMuzrsC4CI2JxixMgxwPpdnLppN3EkSVLvOJGpJEkalJ2BGyLijU2ObdZkXzeeX1l/XpPji7vpLCI2Bm4EjqO7ggfA3C7bS5KkHrHoIUmS+mlRZgbFF/99gZsajs8CvhQR2/U47vwe93caMNlrjF5eiCRJ6py3t0iSpL7LzGeAGyPir4CfAVtXDs8DPkUxD8eYR5p0czfFRKGdeGaCvnbssJ8xRzTZdynF02V+nZl/BIiITwIf6LJvSZLUJxY9JElSbTLzqYg4FfjHhkNviIhdMvP2cvt2isfJVicGnQW8JzMnnNcjIqrn/UuTJvtGxE6ZeXeHl/6ihu2ngIWZubphf7P5QyRJ0oB4e4skSarblcA9TfafNraSmU8C3204vgNwUflo2LVExJYR8XcRcRuwX6WvnwONk5bOAK6OiJc06WfriPhUw+5nG7bnA9tWzomIeC9wYLNrkyRJg+FID0mSVKvMXB0RZwEXNRw6KiJ2zMyxSUZPBw5mzR9p3g78x4j4AfBweex5FI+k3ZbWTgOuadi3A3BnRCwClgCzgZ2APYEHWfM2lduAAyrbM4BbI+KfgWXlOS9rE1+SJA2ARQ9JkjQIXwXOAF5Q2TcDOBV4K0Bm3hwR7wM+23DuRsDh3QTLzG+V822c2nBoFnBQubRzAWsWPQAWAEdXtlcBPwBe3c21SZKk/vH2FkmSVLvMXAGc2+TQf4qIbSrtzqUoLDzaRfd3UIwCaYx5GnACsLSbay3P/QZwdpsmzwILgR9227ckSeofix6SJGlQvgA80bBvFvD+6o7MvJJiItG3A1cB91IULv5EMaHoYuCbwMnAzpm5c2YuaRYwMy8GtgTeBXwL+A3F7SkrgAeAHwOfBI5pcu7JFCNMrgMeL8+5n2LUyp6ZeVlXf70kSeq76GACdEmSJEmSpHWOIz0kSZIkSdJQsughSZIkSZKGkkUPSZIkSZI0lCx6SJIkSZKkoWTRQ5IkSZIkDSWLHpIkSZIkaShZ9JAkSZIkSUPJoockSZIkSRpKFj0kSZIkSdJQsughSZIkSZKGkkUPSZIkSZI0lCx6SJIkSZKkoWTRQ5IkSZIkDSWLHpIkSZIkaShZ9JAkSZIkSUPJoockSZIkSRpKFj0kSZIkSdJQsughSZIkSZKGkkUPSZIkSZI0lCx6SJIkSZKkoWTRQ5IkSZIkDSWLHpIkSZIkaShZ9JAkSZIkSUPJoockSZIkSRpK/x8QMlLsReyEuAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1200x740 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "ps, rs, ths = ([], [], [])\n",
    "th = np.max(pred_es)\n",
    "while th >= 0.0:\n",
    "    p, r = pr_at_th(th)\n",
    "    ps.append(p)\n",
    "    rs.append(r)\n",
    "    ths.append(th)\n",
    "    th -= 0.0005\n",
    "    \n",
    "from sklearn import metrics\n",
    "\n",
    "print(f'AUC: {metrics.auc(rs, ps)}, max R: {max(rs)}, max P: {max(ps)}')\n",
    "    \n",
    "i = len(rs) - 1\n",
    "while rs[i] == 1.0:\n",
    "    i -= 1\n",
    "i += 1\n",
    "print(f'100% recall at: {int(ps[i] * 100)}%, threshold: {ths[i]}')\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(6, 3.7), dpi=200)\n",
    "\n",
    "ax.spines['top'].set_color('#808080')\n",
    "ax.spines['right'].set_color('#808080')\n",
    "ax.spines['left'].set_color('#808080')\n",
    "ax.spines['bottom'].set_color('#808080')\n",
    "ax.tick_params(direction='in', color='#808080')\n",
    "\n",
    "plt.grid(color='#c0c0c0', linestyle='--', linewidth=0.5)\n",
    "\n",
    "plt.ylabel('Precision', fontweight='bold')\n",
    "plt.xlabel('Recall', fontweight='bold')\n",
    "\n",
    "plt.xlim((0.0, 1.0))\n",
    "plt.ylim((0.0, 1.0))\n",
    "\n",
    "_ = plt.plot(rs, ps)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
